RewriteRule和apache的问题

时间:2009-11-19 12:46:42

标签: apache mod-rewrite

我有一个在我的www域名注册的SSL证书,但我的所有网址都指向没有www的域名。 我试过这句话:

RewriteRule ^[https://mydomain.org](.*)$ https://www.mydomain.org$1 [R=301,nc]

但由于某些未知原因,它也会重定向所有对http://mydomain.org的调用。我真的想不出这个原因

3 个答案:

答案 0 :(得分:1)

如果我错了,有人应该纠正我,但我不认为RewriteRule指令可以访问所请求的uri的协议部分。试试这个:

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

答案 1 :(得分:1)

尝试此规则:

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]

但是无效的证书消息不会消失,因为在HTTP参与之前完成了SSL连接(因为HTTPS是基于SSL / TSL的HTTP)。

答案 2 :(得分:0)

如何检测服务器端口?

RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R]

如果你连接到https(因为你使用的是端口443),所以如果你们正在使用WWW。