Ilj*_*lja 4 apache .htaccess ssl
我在整个网站上都启用了ssl,但我需要强制除login.php和register.php之外的所有页面到http://
所以基本上我只需要login.php和register.php页面为https:// protocol-ed.
现在我的脚本使login.php页面https://加密,但我不明白如何将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]
Run Code Online (Sandbox Code Playgroud)
关于如何编辑/制作此代码以将login.php和register.php页面设置为https://以及所有其他页面为http://的任何想法
谢谢
如果您熟悉mod_rewrite和regex,那么阅读这些规则应该没有问题 - 提供解释特定规则的注释.其余的 - 正则表达式基础知识:
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]
Run Code Online (Sandbox Code Playgroud)
这些规则需要放在网站根文件夹中的.htaccess之前,任何其他重写规则(如果有的话).如果放在其他地方,可能需要进行一些小的调整.
他们会的
/login.php和/register.php,您可以轻松地将其他URL添加到该列表 - 只需通过向列表中添加其他文件名来编辑现有规则(2个位置中的相同文本:1)以强制2)排除)
文件名区分大小写.因此,如果/LOGIN.php请求这些规则将无法工作(Apache也不会提供服务,因为Linux是区分大小写的操作系统..所以这里不必担心太多).
显而易见的事情:应该启用mod_rewrite并且.htaccess文件需要由Apache处理(一些网站托管公司出于性能和安全原因而禁用它们).
| 归档时间: |
|
| 查看次数: |
10040 次 |
| 最近记录: |