我正在尝试将http://example.com,http://www.example.com,https://www.example.com的通配符重定向到https://example.com
我尝试了here提到的解决方案,但它对我不起作用,因为当我打开任何页面时,网页浏览器会显示太多重定向错误。
我最接近的是我可以使用以下代码将http://example.com和http://www.example.com重定向到https://example.com。但仍然无法弄清楚https://www.example.com到https://example.com重定向的方式
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
注意(可能这是导致重定向过多的问题):
我刚注意到,即使没有在.htaccess中指定任何重定向代码(请参阅下面的代码),http://www.example.com
也会被重定向到http://example.com
<IfModule mod_rewrite.c>
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
答案 0 :(得分:0)
尝试:
RewriteEngine on
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www
RewriteRule ^.*$ https://example.com%{REQUEST_URI} [R,L]
#wordpress rules
答案 1 :(得分:0)
我刚才发现了问题。 SSL证书刚刚为https://example.com
创建。我分配了一个包含example.com
和www.example.com
的新的多域SSL证书,现在事情正在按预期工作。这是我工作的.htaccess文件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "https\:\/\/example\.com\/$1" [R=301,L]
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
<IfModule mod_rewrite.c>
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>