将WWW重定向到非WWW HTAccess

时间:2019-12-08 作者:Adrihin

它被问了无数次,但在我的Wordpress中仍然不起作用。我想将所有内容重定向到https://website.com.已使用的当前代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
</IfModule>
基于this one 但我也试过了all in this page 当然还有this other one. 也许我错过了什么,但无论我尝试什么组合,都会发生这种情况:

# http://website.com      -> https://website.com
# https://website.com     -> https://website.com
# http://www.website.com  -> https://www.website.com     #wrong#
# https://www.website.com  -> https://www.website.com     #wrong#
我开始怀疑let’s encrypt安装是否与。。。或者甚至在wp config中进行一些其他修改。php。。。我在过去补充了这一点:

if ( defined( \'WP_CLI\' ) ) {
    $_SERVER[\'HTTP_HOST\'] = \'localhost\';
}

define(\'WP_SITEURL\', \'https://\' . $_SERVER[\'HTTP_HOST\'] . \'/\');
define(\'WP_HOME\', \'https://\' . $_SERVER[\'HTTP_HOST\'] . \'/\');
有什么想法吗?谢谢

2 个回复
最合适的回答,由SO网友:Trisha 整理而成

这就是您想要的:

RewriteEngine On
RewriteCond %{HTTP_HOST} website\\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://website.com/$1 [R,L]
@elgoots,你的关系很近但仍然有问题的原因是你的HTTP\\U主机中有www。

SO网友:Elgoots

手动将wordpress主页和网站url设置为https://website.com

然后删除中的所有其他规则。htaccess和have:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
对于所有流量和所有页面/帖子/类别等,htaccess将重定向到https。

至于删除www-infront,网站url和主页url应该在wordpress框架中处理。

试试看,然后再报告。

如果不起作用,请尝试以下操作并手动设置请求uri。显然改变了网站。com与您的域:

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