簡體   English   中英

停止WordPress從301重定向/index.php到/

[英]Stop WordPress from 301 redirecting /index.php to /

我需要能夠瀏覽到http://www.example.com/index.php ,但WordPress會自動301將其重定向到http://www.example.com/

是否可以僅為主頁停止此重定向?

這是我的.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

重定向發生在redirect_canonical函數中。 在重定向發生之前,有一個過濾器應用於重定向URL:

$redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url );

如果您掛鈎到該過濾器,您應該能夠禁用重定向。

add_filter('redirect_canonical', function($redirect_url, $requested_url) {
    if($requested_url == home_url('index.php')) {
        return '';
    }
}, 10, 2);

我通過將上面的過濾器添加到我的主題的functions.php文件中來驗證這是有效的。 請注意,必須在重定向操作觸發之前附加此過濾器,因此將過濾器放在模板文件中將不起作用。

應該工作。 RewriteBase /下添加。

DirectoryIndex <somerandomfile>.php
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://www\.example\.com/index\.php$1 [R=301,L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM