[英]Redirect HTTPS to HTTP except for one directory
对于以其他各种形式提出的问题,我深表歉意,但是针对我的特殊情况,我在工作中都没有遇到任何答案。
我想将所有页面重定向到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]
我宁愿使用第一个版本的变体。 看起来应该可以(无论如何对我来说)。 任何人都可以在这个沉闷的主题上打出些分文吗?
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/secure/.*
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
在最后一条规则上添加[R,L]
后,您的原始解决方案对我有用:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
%{HTTP_HOST} !\.dev$ [NC]%{HTTP_HOST} ^www\..+$ [NC]
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI
回复: 这是我尝试过的
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
我认为您在该URI上缺少斜杠: ^/secure
。
有人告诉我,HTTPS并没有像我想的那样对Apache征税。 显然,大多数额外的负载来自建立连接。 由于客户端此时将已经建立安全连接,因此最好让他们继续进行。
如果有人读过此书,则知道重写规则的原因:
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
我想知道,它不能正常工作(它不会像应有的那样排除/ secure /目录)。 我是编程新手,无法理解这样的东西,这真的使我难以理解。
谢谢堆栈溢出!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.