我有一个在我的www域名注册的SSL证书,但我的所有网址都指向没有www的域名。 我试过这句话:
RewriteRule ^[https://mydomain.org](.*)$ https://www.mydomain.org$1 [R=301,nc]
但由于某些未知原因,它也会重定向所有对http://mydomain.org的调用。我真的想不出这个原因
答案 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。