我有网页创建在Wordpress v5.4,主题二十十二,刚刚安装了SSL证书。
我想有这样的重定向结构(矩形重定向代码),以优化搜索引擎优化:

但根据Google Chrome Site Inspector的说法,我有以下一个:

因此,模式并没有完全优化,因为有两种情况是dwo级联重定向,而实际上应该是一种。
奇怪的是,当前的模式没有反映.htaccess文件。我的.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
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>因此,我对代码的理解是,如果输入url而没有输入https://,,脚本会将其重写为带有https://的版本,所以肯定有另一个地方正在进行其他重定向(例如,使用没有www的www -> )。
我已经检查了index.php -没有重定向。
我还检查了.htaccess文件中的其他行,不要覆盖那些“隐藏”的行,所以如果我简单地添加它们,我会在web浏览器中收到多个重定向错误。
你能告诉我,我还应该做什么,以获得所需的重定向结构?
发布于 2020-04-12 17:27:41
第一个规则将所有www重定向到https://domainname.com/,第二个规则将所有http重定向到https://domainname.com/,一跳
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule (.*) https://domainname.com/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://domainname.com/$1 [R=301,L]
</IfModule>
# 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发布于 2020-04-10 03:01:55
我猜从www到非www的重定向是由于您在您的设置(WordPress仪表板、→设置、→常规)中设置的地址。
对于想要实现的重定向,必须在.htaccess中为www.添加重写条件
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]https://stackoverflow.com/questions/61128149
复制相似问题