Htaccess HTTPS重定向

时间:2011-07-04 21:16:50

标签: php apache .htaccess mod-rewrite redirect

我正在尝试将我的.htaccess文件仅将某些页面/文件夹重定向到https,如果不是需要加密的页面,那么它应该向用户拍摄http页面。另外,我希望能够列出某些可以是HTTP或HTTPS的文件夹

以下是我尝试自己写作的内容。但似乎没有正常工作。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteCond %{SERVER_PORT} 80
RewriteCond $1 ^(myaccount|payment\.html)
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]

RewriteCond %{SERVER_PORT} 443
RewriteCond $1 !^(myaccount|payment\.html)
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>

2 个答案:

答案 0 :(得分:1)

您正在检查RewriteCond模式中的文字$1。它应该是:

RewriteCond %{REQUEST_URI} ...stuff to match against here...

答案 1 :(得分:0)

这应该做你想要的。

RewriteCond %{SERVER_PORT} 443 [NC]
RewriteCond %{REQUEST_URI} !^/(myaccount|payment)\.html [NC]
RewriteRule . http://www.domain.com/%{REQUEST_URI}/ [R=301,L]