我需要抓住我的wordpress网站中的所有404,并根据原始网址请求重定向它们。例如,如果以下是404
http://example.com/news/123.html
我需要将其重定向到
http://example.com/news
我会有多个这样的实例,如下面的404
http://example.com/hats/greenhat.html
将转到
http://example.com/hats
我无法弄清楚如何在Wordpress中执行此操作。在我的.htaccess文件中,这是我的第一行
ErrorDocument 404 http://example.com/my-custom-404.php
但不是重定向到my-custom-404.php,它仍然会转到默认的wordpress 404页面。
这是我的htaccess供参考
ErrorDocument 404 http://example.com/index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#Rewrite 404s to the news section
RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ /news/index.php [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
# THE 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>
在我作为测试的文件中,我试图将所有404重写为/news/index.php,这不起作用 - 一切仍然是wordpress 404页面
答案 0 :(得分:1)
Wordpress拥有自己处理404的方式。在WP主题中,你可以创建一个名为404.php
的文件,在该文件中有一个PHP代码:
$_SERVER['REQUEST_URI']
/
substring
函数在最后/
之后删除部分并重定向