我正在编写一个简单的.htaccess重写来强制单个页面使用https(灵感来自this question的答案)。
使用RewriteCond更好,如下:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/page\.php$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
或RewriteRule中条件的较短替代:
RewriteCond %{HTTPS} off
RewriteRule ^page\.php$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
答案 0 :(得分:3)
好吧,如果您使用apache作为您的httpd服务器,那么使用单一条件和单一规则就足以完成您的任务,您就绝对精确且安全。使用前者比使用前者更有优势。
我说如果你不必制定/应用进一步的规则或检查,那么使用较短的规则而不是再应用一个额外的条件。我这样说是因为你的情况很简单,你只需要为一个给定的页面重定向到https
。
即使你看AskApache site here,他们也建议最好的方法是使用%{HTTPS}变量和一个RewriteRule,这是最好和最有效的方法。
如果您的担忧与我上面提到的不同,请告诉我。