很抱歉,如果之前有人询问,但我找不到它。 我有一个文件夹,当我访问HTTPS和HTTP中的加载时。
我希望该文件夹中的所有文件都在HTTP中加载,但一个文件除外。 我在HTTPS中需要的文件是:login.php,这个文件夹叫做“forum”。 如果它有帮助:文件夹中的所有文件都是* .php。
我正在尝试以下方面:
#RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^/login.php$ - [L]
#RewriteCond %{SERVER_PORT} ^443$
#RewriteRule ^(/login.php) $ https://%{HTTP_HOST}/$1 [QSA,NC,R,L]
#RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [QSA,NC,R,L]
当谈到mod_rewrite时,我有点像业余爱好,所以如果以上内容完全关闭,请原谅我。 此外,如果你发布一个解决方案,如果你发布一个解释,我会很感激,所以我实际上可以了解它是如何工作的。
提前致谢! 大卫
答案 0 :(得分:1)
尝试一下:
Options +FollowSymLinks
RewriteEngine On
# port 443 traffic to http://, except login.php
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{REQUEST_URI} !^/login\.php$ [NC]
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# port 80 traffic for login.php to https://
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_URI} ^/login\.php$ [NC]
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
答案 1 :(得分:0)
请尝试以下规则:
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^login\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{SERVER_PORT} !=80
RewriteRule !^login\.php$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]