htaccess强制https“www”重定向到非“www”

时间:2017-06-14 07:56:07

标签: wordpress .htaccess redirect

我知道这方面有一些主题,但我尝试过的所有配置通常都会让我的网站无法访问。我的问题是我们最近获得了SSL证书,但仅限于该站点的非“www”版本,但如果用户使用“www”编写URL,则会得到不安全的站点消息。这是当前的htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

例如,此配置也不会执行任何操作:

# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END WordPress

1 个答案:

答案 0 :(得分:0)

如果你正在使用apache(我认为),tou可以尝试:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yourdomain.com/$1 [R=301,L]

当然一定要没有“www”。在您的网站设置中,因为这可能会破坏整个网站。

您还可以将www重定向到.htaccess中的非www:

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

此外,这有助于避免混合内容警告。总是把它放在.htaccess

Header always set Content-Security-Policy: upgrade-insecure-requests

干杯