Apache .htaccess HTTP到HTTPS和非www到www

Apache .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

我目前有一些规则可以用于定向到,但它不起作用(我想它不匹配?),应该重定向到。是否有人可以修改下面的内容来执行此操作?我尝试了很多方法,但都没有成功,这是我第一次使用.htaccess重写规则

TL;博士,我需要重定向到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]
编辑:我发现了下面的代码,它在某种程度上是有效的-它将两者重定向到,但它给出了一个“太多重定向”错误


你试过这样的东西吗

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>