htaccess重写为https多个域

时间:2018-04-17 17:41:27

标签: apache .htaccess mod-rewrite https ssl-certificate

我对我的问题感到疯狂,并希望得到你的帮助。

我有一个网站,其中两个域链接到同一个路径。并且webstore正在选择应该显示哪些内容取决于域。

  • www.yogabox.de - 德语内容
  • www.yogabox.co.uk - 英文内容

我正在尝试将所有种类的yogabox.de重写为https://www.yogabox.de,并将yogabox.co.uk重写为https://www.yogabox.co.uk

结果如下:

enter image description here

我正在使用这些规则:

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.dehttps://yogabox.co.uk错误。问题在哪里?

我已经使用此处WWW to NON WWW Urls (Remove WWW) using Apache (.htaccess)

这样的无效证书检查了问题

但证书对www和没有www。

有效

1 个答案:

答案 0 :(得分:1)

问题是您的规则与ssl non-www网址不匹配,因此从https://example.comhttps://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]

确保在测试这些规则之前清除浏览器缓存。