添加操作在wordpress中不起作用
我正在设置一个WP,它应该将所有对子目录的请求重定向到该目录中的文件。 例如,如果在添加操作在wordpress中不起作用,wordpress,url-rewriting,rewrite,Wordpress,Url Rewriting,Rewrite,我正在设置一个WP,它应该将所有对子目录的请求重定向到该目录中的文件。 例如,如果在example.com/link/me上有一个访问,那么它应该将用户发送到/link/index.php?me 为了实现这一点,我尝试在主题函数文件中添加重写规则。 我的代码是这样的: function moin_add_rewrite_rules() { add_rewrite_rule( '^([^/]*)/(link)/(?:[a-z][a-z0-9_]*)?$',
example.com/link/me
上有一个访问,那么它应该将用户发送到/link/index.php?me
为了实现这一点,我尝试在主题函数文件中添加重写规则。
我的代码是这样的:
function moin_add_rewrite_rules() {
add_rewrite_rule(
'^([^/]*)/(link)/(?:[a-z][a-z0-9_]*)?$',
'/link/index.php?$matches[1]',
'top'
);
}
add_action( 'init', 'moin_add_rewrite_rules' );
它不工作,访问example.com/link/me
显示404(因为链接在WP之外)。
正则表达式代码有问题吗?或者其他地方?其他可能的解决方案是什么?查看中的示例,匹配的表达式没有前导的/
从正则表达式中去掉前导位,那么,我认为这应该是可行的(对不起,我手头没有测试环境):
或者,您可以在.htaccess
文件中执行类似操作
作为一个旁注,我认为由于它目前已编码,您应该使用
$matches[3]
而不是$matches[1]
,因为您感兴趣的值是括号中的第三个参数(Codex注释“捕获组数据从1开始,而不是0”)。它也不起作用。还尝试了$matches[3]
:(我们如何使用.htaccess?看起来不像你用add_rewrite_标记来使用add_rewrite_规则
你必须使用add_rewrite_标记
来识别你的重写检查它。在一个单独但相关的注释中,重写可以进入。htaccess
是你根目录中的一个隐藏文件,就像Ho一样bo引用。@DavidChase我也尝试过添加重写标记,但仍然得到了404。我想再次提及的是,WP在根目录中,但链接目录不是WP。它在根目录之外。要实现这一点,可能的.htaccess
代码是什么?
add_rewrite_rule('^link/([a-z][a-z0-9_]*)/?$','/link/index.php?$matches[1]','top');