mod_rewrite apache的问题|将非www网址重定向到www网址

时间:2012-02-06 09:38:17

标签: apache mod-rewrite

我正在尝试将我网站上的所有请求重定向到格式的网址:

https://www.mydomain.com 

因为我有www.mydomain.com的SSL证书。我在httpd.conf文件中写了以下重写规则来执行此操作:

RewriteCond %{HTTP_HOST} !^www [NC]
RewriteRule $ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R]

RewriteCond %{HTTPS} off
RewriteRule $ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

在以下可能的格式中,只有一种不起作用:

mydomain.com - working
www.mydomain.com - working
http://mydomain.com - working
https://mydomain.com – not working
https://www.mydomain.com - working
http://www.mydomain.com - working

有谁可以解释这个问题背后的原因和解决方案?

更新

当我尝试点击无效的网址(https://mydomain.com)时,我收到无效的SSL证书错误(因为我的证书对www.mydomain.com有效而非mydomain.com)和因此,我的重写规则都没有被执行,因为尚未建立http连接。

这个问题有解决方法吗?

2 个答案:

答案 0 :(得分:1)

您可能想尝试

rewritecond %{SERVER_PORT} !^443$

而不是

RewriteCond %{HTTPS} off

答案 1 :(得分:0)

凭借我拥有的证书,这是不可能的。试试https://amazon.com,您会看到不受信任的连接问题。我有类似的问题。选择是购买另一张证书。