htaccess SSL目录重定向和反向

时间:2011-08-31 14:56:02

标签: .htaccess mod-rewrite ssl url-rewriting

我发现了类似的问题,但无论我尝试什么,我都无法让htaccess去做我需要的东西。我想要的是在访问一个(或多个)虚拟子目录时将访问者引导到SSL连接,然后在离开这些选定的子目录时将其反转。

我的规则如下:

Options +FollowSymlinks
RewriteEngine on

#switch on SSL in /directory/ only
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/directory/
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

#switch off SSL in other folders
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/directory/
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteRule ^([^/\.]+)/?$ /index.php?var1=$1 [NC,L,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+).html /index.php?var1=$1&var2=$2 [NC,L,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?var1=$1&var2=$2 [NC,L,QSA]

似乎启用SSL并关闭SSL冲突,当我尝试通过https://www.domain.com/foo/访问任何网页时,我被正确地重定向到http://www.domain.com/foo/

但是,在尝试访问http://www.domain.com/directory/(应该是SSL)时,我被重定向到http://www.domain.com/index.php?var1=directory而不是https://www.domain.com/directory/

我真的非常感谢我在哪里出错了。我已经通过stackoverflow和网络搜索了几个小时,寻找答案,但我只是围成一圈,看不到树上的木头。

感谢您提供任何指导/帮助。

0 个答案:

没有答案