Wordpress .htaccess重写规则将变量添加到给定页面

时间:2013-11-12 21:19:57

标签: wordpress .htaccess

我有一个wordpress网站已经在使用.htaccess文件来显示干净的URL,例如example.com/post-name

wordpress .htaccess文件通常包含以下代码:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

我的问题是我有一个特殊的页面,它基于我想要通过URL的变量在其中有一个条件语句。如果我在浏览器中输入并正常运行,此URL实际上有效:http://example.com/dir/?var=var-value

我想要做的是通过添加新的重定向规则来使此网址清晰,以使网址如下所示:http://example.com/dir/var-value。我在文件中添加的内容如下:

RewriteRule ^dir/([^/]*)$ /dir/?var=$1 [L]

我对正则表达式没有很好的理解,特别是在.htaccess文件中,我无法弄清楚这一点。如果我添加此重定向然后键入相应的URL我只是得到一个页面未找到错误。我已经尝试将我的规则移到文件中的不同位置,我得到了相同的结果。

附加信息是“dir”是由wordpress管理员创建的实际页面,我假设这里存在一些冲突。我没有找到这个网页上的WordPress可帮助http://codex.wordpress.org/Rewrite_API/add_rewrite_rule但我不能得到它的工作,我不知道如果我把这个在我的functions.php或在我的自定义模板文件。

我正在使用我创建的genesis框架的子主题。

1 个答案:

答案 0 :(得分:0)

根据你的链接文档,你可以试试这个:

add_rewrite_rule('^dir/([^/]+)/?','dir?var=$matches[1]','top');