Apache .htaccess HTTP到HTTPS和非www到www
我目前有一些规则可以用于定向到,但它不起作用(我想它不匹配?),应该重定向到。是否有人可以修改下面的内容来执行此操作?我尝试了很多方法,但都没有成功,这是我第一次使用.htaccess重写规则 TL;博士,我需要重定向到WWW和HTTPSApache .htaccess HTTP到HTTPS和非www到www,apache,.htaccess,Apache,.htaccess,我目前有一些规则可以用于定向到,但它不起作用(我想它不匹配?),应该重定向到。是否有人可以修改下面的内容来执行此操作?我尝试了很多方法,但都没有成功,这是我第一次使用.htaccess重写规则 TL;博士,我需要重定向到WWW和HTTPS RewriteEngine On RewriteRule .? - [E=PROTO:http] RewriteCond %{HTTPS} =on RewriteRule .? - [E=PROTO:https] RewriteCond %{HTTP_H
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]
编辑:我发现了下面的代码,它在某种程度上是有效的-它将两者重定向到,但它给出了一个“太多重定向”错误
你试过这样的东西吗
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>
NameVirtualHost*:80
服务器名www.domain.com
ServerAlias domain.com
重定向永久/https://www.domain.com/
服务器名www.domain.com
DocumentRoot/www/
斯伦金安
#等等。。。
这是我使用的规则:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
重写cond%{HTTP_HOST}^www\.(.+)$[NC]
重写规则^http://%1%{REQUEST_URI}[R=301,L]
您可以包括RewriteCond%{HTTPS}=on
作为强制删除https(如果必要)的第一个条件
希望这会有所帮助……您是否可以访问部分有效的服务器配置,如我示例中的第二个。也就是说,它改为https://www,但我得到了错误310(net::ERR_TOO_MANY_重定向):重定向太多了。此“修复”适用于cPanel环境中的许多客户端,因此实际上不可能修改virtualhost。
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>