2015-11-02 81 views
2

每个指南看起来都很简单直接 - 只需将一小段代码放入functions.php中,然后通过转到永久链接并保存即可刷新重写规则。但是即使使用最宽泛的描述符,我的功能也不会被承认。即使将正则表达式设置为0,add_rewrite_rule也会被忽略。*

我有我从这个使用的代码慢慢消减下来:

function new_rewrite() { 
    add_rewrite_rule('^u/(.+)/?$','index.php?pagename=user-profile&user=$matches[1]','top'); 
} 
add_action('init', 'new_rewrite'); 

到向我证明这完全包罗万象的版本是非常严重的错误在这里:

function new_rewrite() { 
    add_rewrite_rule('.*','index.php','top'); 
} 
add_action('init', 'new_rewrite'); 

当我使用上面的代码 - 只要我有意义,应该接受任何提供给它的内容并返回主页---而不是完全忽略它,并且所有的工作方式与之前我试图编写任何规则的方式完全相同。

让我重申一下:我已经将它放在了functions.php中,我添加了很多其他函数,例如add_custom_query_var以取得巨大成功,并且我也不断刷新重写规则。

这里可能会发生什么?

+0

如果已正确刷新,您应该在htaccess中看到生成的规则。 – vard

+0

@vard好吧我不知道它写到htaccess。我检查了,规则没有出现在那里。什么可能会阻止我的同花顺? –

+0

也许在htaccess文件上有一些权限问题? – vard

回答

1

WordPress的使用位于他安装的根htaccess的 - 而不是网站服务器文件夹的根 - 所以htaccess的是WP将覆盖是一个是作为同一级别的wp-config.php文件

默认情况下,WP htaccess的含有这两种意见:

# BEGIN WordPress 
# END WordPress 

WordPress的使用它们知道他应该add_rewrite_rule添加生成的规则 - 它有时是有用的移动这样的评论,使规则更加高于或与其他一些自定义规则相比较低。