使用https修改重写问题,从网址中删除www

时间:2010-08-10 17:38:49

标签: mod-rewrite https strip

我们有一个例如https://www.egdomain.com/的网址,而且ssl对egdomain.com有效。 那么如何将所有请求从https://www.egdomain.com/重定向到https://egdomain.com/

该网站也有正常的http请求,工作正常。

我尝试了下面的htaccess但仍然没有

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]

RewriteCond %{HTTP_PORT} =443

RewriteRule (.*) https://%1/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]

RewriteRule (.*) http://%1/$1 [L,R=301]

非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

您可以将这两个规则合并为一个:

RewriteCond %{HTTPS}s ^on(s)|
RewriteCond http%1://%{HTTP_HOST}%{REQUEST_URI} ^(https?://)www\.(.+) [NC]
RewriteRule ^ %1%2 [L,R=301]

但也许这有点太混乱了。

答案 1 :(得分:0)

manual说(强调我的):

  

RewriteCond反向引用:这些是%N(1 <= N <= 9)形式的反向引用,它提供对模式的分组部分(再次,在括号中)的访问,从<当前条件中的s​​trong>最后匹配 RewriteCond

所以:

RewriteCond %{HTTP_PORT} =443
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule (.*) https://%1/$1 [L,R=301]

请注意,如果您的证书仅适用于没有www.的版本,则访问者在访问www.版本时仍会收到安全警告。