如何使用RewriteRule来处理HTTP和HTTPS访问

时间:2012-04-25 16:24:42

标签: .htaccess mod-rewrite https

这是一个htaccess文件,可确保每次进入网站时都有www:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.mysite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]

这样可以正常访问网站     “HTTPS://mysite.com” 因为它会被重写为     “HTTP://mysite.com”

如何重新编写此htaccess文件以适用于http和https两种情况?网站上的某些页面设计为HTTP,而其他页面则设计为仅在HTTPS中使用。我不是Mod_rewrite的专家,我一直在努力解决这个问题。任何帮助或建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

将您的代码更改为:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS}s on(s)|
RewriteCond %{HTTP_HOST} !^www\.mysite\.com$ [NC]
RewriteRule ^ http%1://www.mysite.com%{REQUEST_URI} [R=301,L]