Wordpress 即使正则表达式设置为,添加重写规则也会被忽略*

Wordpress 即使正则表达式设置为,添加重写规则也会被忽略*,wordpress,mod-rewrite,Wordpress,Mod Rewrite,每一个指南似乎都简单明了——只需在functions.php中放入一小块代码,然后转到permalinks并保存,刷新重写规则。但即使用最宽大的描述,我的功能也不被承认 我已经慢慢地缩减了我正在使用的代码: function new_rewrite() { add_rewrite_rule('^u/(.+)/?$','index.php?pagename=user-profile&user=$matches[1]','top'); } add_action('init', 'new_

每一个指南似乎都简单明了——只需在functions.php中放入一小块代码,然后转到permalinks并保存,刷新重写规则。但即使用最宽大的描述,我的功能也不被承认

我已经慢慢地缩减了我正在使用的代码:

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,取得了巨大的成功,而且我还不断刷新重写规则


这里可能发生了什么?

Wordpress使用位于其安装根目录下的htaccess,而不是网站服务器文件夹的根目录,因此WP将覆盖的htaccess与WP-config.php的级别相同

默认情况下,WP htaccess包含以下两条注释:

# BEGIN WordPress
# END WordPress

Wordpress使用它们来知道他应该在何处添加由
add\u rewrite\u rule
生成的规则-有时移动此注释可以使规则比其他自定义规则更高或更低。

如果已正确刷新,您应该在htaccess中看到生成的规则。@vard Ok我不知道它是写入的HTC访问。我检查过了,规则没有出现在那里。什么可能阻止了我的刷新?可能是htaccess文件的一些权限问题?@vard我检查了一下,它是644,只有“所有者”可以写入。但那应该没问题,对吧?@vard我刚刚想到的一件事是,我的htaccess在根目录中,而我的wordpress安装在子文件夹中。六羟甲基三聚氰胺六甲醚。