繁体   English   中英

将HTTPS重定向到HTTP(一个目录除外)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM