使用ADD_REWRITE_RULE()重写简单页面URL

时间:2014-11-12 作者:3ky

我查看了以前的帖子,但我的问题似乎没有被以前的任何答案所涵盖。

我已将WP安装到子文件夹中

www.example.com/sub-folder/

和一页password protected

www.example.com/sub-folder/thepage/

我需要的是使用该页面

www.example.com/thepage/

我添加了functions.php

//Rewrite Rules
add_rewrite_rule(\'thepage/\', \'sub-folder/thepage/\', \'top\');
并且尝试过

//Rewrite Rules
add_rewrite_rule(\'^thepage/\', \'sub-folder/thepage/\', \'top\');

//Rewrite Rules
add_rewrite_rule(\'/thepage/\', \'/sub-folder/thepage/\', \'top\');
但什么都没起作用。这是我第一次使用这个函数。我做错了什么?

1 个回复
SO网友:cybmeta

的第二个参数add_rewrite_rule 不是路径,而是要WordPress执行的查询字符串。这应该适用于example.com/sub-folder/thepage/ (将page\\u id更改为您的页面id):

add_rewrite_rule(\'thepage/\', \'index.php?page_id=12\');
或使用页段塞:

add_rewrite_rule(\'thepage/\', \'index.php?pagename=thepage\');
由于WordPress位于子目录中,并且您想要删除目录名,因此您必须properly cofigure WordPress in sudirectory.

如果希望所有WordPress URL的格式为example.com/sub-folder/ 并且仅为“页面”翻出“子文件夹”,您必须在中配置重写规则。根目录上的htaccess文件,而不是WordPress中的文件:

RewriteRule ^thepage(/)?$ sub-folder/index.php?page_id=12 [L]

结束

相关推荐