我为提出以其他各种形式提出的问题而道歉,但我遇到的答案都没有针对我的具体情况。
我想将所有页面重定向到HTTP(通过mod_rewrite),除非它们位于/ secure /文件夹中。
这是我尝试过的:
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
有人声称有效的另一个版本,但在这种情况下不起作用:
RewriteRule ^secure/ - [L]
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^ http://www.thevirtualstagingexperts.com%{REQUEST_URI} [L,R=301]
我宁愿使用第一个版本的变体。它看起来应该工作(无论如何)。任何人都可以对这个如此沉闷的主题发表一些看法吗?
答案 0 :(得分:0)
回复:以下是我尝试的内容
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
我认为您错过了该URI的斜杠:^/secure
。
答案 1 :(得分:0)
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/secure/.*
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
答案 2 :(得分:0)
在将[R,L]
添加到最后一条规则后,您的原始解决方案适用于我:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
答案 3 :(得分:0)
%{HTTP_HOST} !\.dev$ [NC]%{HTTP_HOST} ^www\..+$ [NC]
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI
答案 4 :(得分:-1)
有人向我指出,HTTPS并没有像我想象的那样对Apache征税。显然,大部分额外负载来自建立连接。由于客户端此时已经建立了安全连接,因此让它们继续使用它应该没问题。
如果有人读到这个,就知道重写规则的原因:
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
不起作用(它不会像它应该那样排除/ secure /目录),我很想知道。我是编程新手,不能理解这样的东西真的在我的皮肤下。
谢谢Stack Overflow!