0

我们有一个用于 eg 的 url, 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]

任何帮助将不胜感激

4

2 回答 2

1

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

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

但也许这有点太令人困惑了。

于 2010-08-10T17:54:06.923 回答
0

手册说(强调我的):

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

所以:

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

请注意,如果您的证书仅对没有 的变体有效,则访问者在访问该变体www.时仍会收到安全警告。www.

于 2010-08-10T17:51:22.270 回答