【问题标题】:Why am I getting a redirect loop with Wordpress htaccess file?为什么我会收到带有 Wordpress htaccess 文件的重定向循环?
【发布时间】:2015-11-12 11:39:22
【问题描述】:

我正在尝试为我的 Wordpress 进行从 http 到 https 的站点范围重定向,并且我正在尝试遵循本教程 - https://blog.nraboy.com/2014/12/force-https-pages-wordpress-site/

这似乎对他们有用,但是当我关注它时,我收到一条消息说网站正在以永远不会完成(或重定向)的方式运行。

我的 htaccess 文件目前如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress

谁能帮我确定导致重定向循环的原因以及如何解决它?我已经将它放入各种测试器中,这些测试器似乎运行良好。我没有运行任何插件,也不知道是什么导致了循环。

【问题讨论】:

    标签: wordpress apache .htaccess redirect


    【解决方案1】:

    我通常在默认的 WP 规则之上添加自定义重写规则。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    # Rewrite non www. to www.
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    # Rewrite HTTP 2 HTTPS
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>
    
    # BEGIN WordPress
    ...
    

    如您所见,两个规则都重定向到 HTTPS(第一个规则仅在非 www 时应用)。

    只要请求以https://www 开头。标准 WP rulez(您已发布并保存在您的 .htaccess 文件中)根据需要应用。

    【讨论】:

    • RewriteEngine On 可以多次出现吗?这就是我认为我遇到的问题,将来自不同来源的位复制并粘贴到一个文件中。
    • 对不起,这不起作用,它会导致一条消息说重定向太多。这是我在实际尝试做的所有事情中看到的信息。
    猜你喜欢
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多