捕获ADD_REWRITE_RULE后$ERROR=404

时间:2015-02-08 作者:yivi

我有一个重写规则,可以从以前版本的站点捕获旧URL:

add_rewrite_rule( \'(ninos|familia|hogar|mujeres|hombres)-[a-z-]+\\.php\', \'old_id_redirect.php\', \'top\' );
重写规则或多或少按照预期工作,我在调试器中看到请求已通过old_id_redirect.php.

在那里,只有(到目前为止)一个wp-blog-header.php, 什么都没有,几乎什么都没有。

我在那之后停止执行,看看环境的状态,我看到了$error 设置为“404”。

为什么会这样?如果捕获了add\\u rewrite\\u规则并进行了重定向,为什么$error 是否设置为404?

1 个回复
SO网友:sirnornur

我也遇到了同样的问题,并找到了解决方案。据我目前所知,这个问题可能有两个原因:

WP无法识别您的重写规则,因为它们尚未缓存。你可以通过倾倒来检查get_option( \'rewrite_rules\' ); 如果您的规则确实被缓存,那么它们将在该选项中。要确保缓存重写规则,请确保调用:

global $wp_rewrite; 
$wp_rewrite->flush_rules(); 
服务器配置未正确设置为使用.htaccess 文件(用于Apache服务器)。一种简单的检查方法是键入一个在WordPress主机之后不存在的URL地址,例如。http://example.com/location-that-doesnt-exist. 如果服务器正确配置为使用.htaccess 文件,然后您将看到一个由WP主题设计的404页面。如果设置不正确,那么您将看到服务器的默认404页面,并且它不会由您的WP主题设置样式。

结束

相关推荐