我对我的问题感到疯狂,并希望得到你的帮助。
我有一个网站,其中两个域链接到同一个路径。并且webstore正在选择应该显示哪些内容取决于域。
我正在尝试将所有种类的yogabox.de重写为https://www.yogabox.de,并将yogabox.co.uk重写为https://www.yogabox.co.uk
结果如下:
我正在使用这些规则:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.yogabox\.co\.uk$
RewriteCond %{HTTP_HOST} !^yogabox\.co\.uk$
#RewriteCond %{HTTP_HOST} !^www\.yogabox\.de$
RewriteRule ^(.*)$ https://www.yogabox.de/$1 [R=301,L]
RewriteCond %{HTTPS} off
#RewriteCond %{HTTP_HOST} ^yogabox\.co\.uk$
RewriteCond %{HTTP_HOST} !^www\.yogabox\.de$
RewriteCond %{HTTP_HOST} !^yogabox\.de$
RewriteRule ^(.*)$ https://www.yogabox.co.uk/$1 [R=301,L]
仅https://yogabox.de和https://yogabox.co.uk错误。问题在哪里?
我已经使用此处WWW to NON WWW Urls (Remove WWW) using Apache (.htaccess)
这样的无效证书检查了问题但证书对www和没有www。
有效答案 0 :(得分:1)
问题是您的规则与ssl non-www
网址不匹配,因此从https://example.com
到https://www.example.com
的重定向不会发生在您的服务器上。 。
您可以使用以下通用规则将域重定向到https://www
:
RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^.*$ https://www.%1%{REQUEST_URI} [NE,L,R=301]
确保在测试这些规则之前清除浏览器缓存。