【问题标题】:website redirections different from .htaccess configuration与 .htaccess 配置不同的网站重定向
【发布时间】:2020-07-22 11:39:28
【问题描述】:

我在 Wordpress v5.4,主题二十十二中创建了网页,并且刚刚安装了 SSL 证书。

我希望有这样的重定向结构(矩形中的重定向代码),以优化 SEO:

但根据 Google Chrome Site Inspector 我有以下一个:

所以架构没有完全优化,因为有两种情况有两个级联重定向,而应该是一个。

奇怪的是,当前架构没有反映 .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>

所以,我对代码的理解是,如果在没有 https:// 的情况下输入 url,脚本会将其重写为带有 h​​ttps:// 的版本,因此必须有其他重定向的地方(例如,使用 www -> 没有 www) 正在制作中。

我检查了 index.php - 没有重定向。

我还检查了 .htaccess 文件中的其他行不要覆盖那些“隐藏”的行,所以如果我简单地添加它们,我会在网络浏览器中遇到多个重定向错误。

您能否告诉我我还应该做些什么来获得所需的重定向结构?

【问题讨论】:

    标签: wordpress apache .htaccess web redirect


    【解决方案1】:

    第一条规则将所有 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
    

    【讨论】:

    • 谢谢@JarekBaran,您的解决方案对我来说效果很好,现在所有重定向都是一次性完成的
    【解决方案2】:

    我猜从 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]
    

    【讨论】:

    • 谢谢你的工程师,我按照你的建议修改了.htaccess。现在最好了,但是还有一个链接重定向:www -> www -> https://[nowww (301->301->200) - 只是为了澄清一下,我是否也应该在 Wordpress 设置中进行更改你提到要获得完整的结果?
    猜你喜欢
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 2012-12-17
    相关资源
    最近更新 更多