在我的Apache配置文件中,如果页面名称已登录,我有以下内容重定向到https:
<VirtualHost 1.2.3.4:80>
-- snip --
RewriteEngine On
RewriteRule ^/(.*)login(.*) https://domain/$login$2 [L]
</VirtualHost>
这是我遇到麻烦的部分。我想将每个与^/(.*)login(.*)
不匹配的页面重定向回http。
<VirtualHost 1.2.3.4:443>
-- snip --
RewriteEngine On
RewriteRule ^/(.*) http://domain/$l [L]
</VirtualHost>
但是正如我所知,我创建了一个循环重写。
我错过了什么?
。,IP 1.2.3.4是假的。 :)
答案 0 :(得分:0)
未经测试,但应与之合作:
RewriteEngine On
RewriteRule ^(.*)login(.*) https://domain/${REQUEST_URI} [L]
RewriteRule (.*[^l][^o][^g][^i][^n].*) http://domain/${REQUEST_URI} [L]
也许您还可以忘记(.*[^l][^o][^g][^i][^n].*)
qnd匹配.*
,因为[L]
应该阻止HTTPS请求在其重写规则后匹配。待测试。
答案 1 :(得分:0)
这解决了我的问题:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(.*)login(.*)
RewriteRule ^/(.*) http://domain/$1 [L]