好的,我的.htaccess中有这个重写规则:
RewriteRule ^settings https://%{HTTP_HOST}/user_settings.php
这会将“http://domain.com/settings”重定向到“https://domain.com/user_settings.php”。
如何制作以便将“http://domain.com/settings”重定向到“https://domain.com/settings”?这意味着,如何将网址从HTTP重定向到HTTPS,同时仍然将重定向短网址保留在.htcaccess中?
谢谢!
答案 0 :(得分:1)
编辑:澄清问题后更新答案。
您可以这样做:
RewriteCond %{HTTPS} !=on
RewriteRule ^settings(/?)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,NC]
RewriteCond %{HTTPS} =on
RewriteRule ^settings(/?)$ /user_settings.php [L,NC]
第一个RewriteCond
会检查HTTPS是否已关闭,只有符合条件的RewriteRule
才会发生。
第一个RewriteRule
将匹配以下任一项:
http://domain.com/settings
http://domain.com/settings/
(/?)
允许尾随斜杠是可选的。 R
中的[R,NC]
强制将其作为重定向,NC
表示它不区分大小写。
第二个RewriteCond
将再次检查HTTPS,但这次是为了确保它已开启。
如果启用了HTTPS,并且您在目录中(意味着第一次重写成功),则会重写为user_settings.php
。 L
中的[L,NC]
表示如果匹配此规则,那么它应该是最后一个RewriteRule
。