的.htaccess HTTP到HTTPS和非www到www
我目前有哪些工作指导http://domain.com到https://www.domain.com一些规则,但它不工作(我想这不是匹配?)为http://www.domain.com,这应该重定向到https://www.domain.com。有人可以修改下面这样做吗?我已经尝试了很多东西,但都没有成功,这是我第一次使用.htaccess重写规则。的.htaccess HTTP到HTTPS和非www到www
TL; DR,我需要重定向到两个WWW和HTTPS
RewriteEngine On
RewriteRule .? - [E=PROTO:http]
RewriteCond %{HTTPS} =on
RewriteRule .? - [E=PROTO:https]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ %{ENV:PROTO}://www.%{HTTP_HOST}/$1 [R=301,L]
编辑:我发现下面的代码,这在一定程度作品 - 它重定向既https://www.domain.com,但它提供了一个“太许多重定向“错误。
RewriteEngine On
RewriteBase/
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} (www\.)?(.+)$ [NC]
RewriteRule^https://www\.%2%{REQUEST_URI} [L,R=301]
你试过类似的东西吗?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
在服务器的VirtualHost中修改它会更好。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
Redirect permanent/https://www.domain.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName www.domain.com
DocumentRoot /www/
SSLEngine On
# etc...
</VirtualHost>
部分工作,就像我的例子中的第二个。 I.E,它改变为https:// www,但我得到错误310(net :: ERR_TOO_MANY_REDIRECTS):有太多的重定向。 这个“修补程序”适用于cPanel环境中的许多客户端,因此修改虚拟主机是不太可能的。 – bhavicp 2013-04-28 10:55:39
这是我使用的规则:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule^http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
你可以包括RewriteCond %{HTTPS} !=on
作为第一条件强制删除HTTPS,如果这是neccesary ...
希望帮助..
你有权访问服务器配置吗? – 2013-04-28 10:05:51