gpt4 book ai didi

apache - .htaccess - 如何在某些页面上设置 SSL(脚本需要修改)

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:05 24 4
gpt4 key购买 nike

我在整个网站上启用了 ssl,但我需要强制所有页面,除了 login.phpregister.php 到 http://

所以基本上我只需要 login.php 和 register.php 页面为 https://协议(protocol)。

现在我有脚本使 login.php 页面 https://encrypted ,但我不明白如何将 register.php 添加到此代码

Options +FollowSymLinks 
RewriteEngine On

RewriteBase /

# Turn SSL on for payments
RewriteCond %{HTTPS} off
RewriteCond %{SCRIPT_FILENAME} \/login\.php [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Turn SSL off everything but payments
RewriteCond %{HTTPS} on
RewriteCond %{SCRIPT_FILENAME} !\/login\.php [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

关于如何编辑/制作此代码以将 login.php 和 register.php 页面设置为 https://以及所有其他页面为 http://的任何想法

谢谢

最佳答案

如果您稍微熟悉 mod_rewrite 和正则表达式,阅读这些规则应该没有问题——注释解释了特定规则的作用。其余 -- 正则表达式基础知识:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

# force https for /login.php and /register.php
RewriteCond %{HTTPS} =off
RewriteRule ^(login|register)\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# don't do anything for images/css/js (leave protocol as is)
RewriteRule \.(gif|jpe?g|png|css|js)$ - [NC,L]

# force http for all other URLs
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/(login|register)\.php$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  1. 这些规则需要在任何其他重写规则(如果存在)之前放置在网站根文件夹中的 .htaccess 中。如果放置在其他地方,可能需要进行一些小的调整。

  2. 他们会

    • /login.php/register.php 强制使用 HTTPS,
    • 不对图像、CSS 样式和 JavaScript 文件执行任何操作(准确地说,对于具有这些扩展名的文件)
    • 并将对所有其他 URL 强制使用 HTTP
  3. 您可以轻松地将其他 URL 添加到该列表 - 只需通过将其他文件名添加到列表来编辑现有规则(2 个位置的相同文本:1) 强制 2) 排除)

  4. 文件名区分大小写。因此,如果请求 /LOGIN.php,这些规则将不起作用(Apache 也不会提供它,因为 Linux 是区分大小写的操作系统 .. 所以在这里无需担心)。

  5. 很明显:mod_rewrite 应该启用,.htaccess 文件需要由 Apache 处理(一些网站托管公司出于性能和安全原因禁用它们)。

关于apache - .htaccess - 如何在某些页面上设置 SSL(脚本需要修改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7206287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com