在WordPress的wordpress中重写规则

时间:2015-09-22 11:49:22

标签: php wordpress .htaccess

我在本地用“ben.scbw.zec.dev”vhost运行wordpress。

我创建了页面模板以显示特定的事件详细信息。

http://ben.scbw.zec.dev/event-view?view_event=14

我可以使用上面的网址访问页面“event-view”是页面上的slug和页面id = 439。

现在,我希望使用以下网址访问它。

http://ben.scbw.zec.dev/event-view/this-is-test-event/14/

“这是测试事件”它的事件标题任何文本,我已设法创建URl。

以下是我的.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

以上是标准wordpress crated代码,我添加了以下代码。

RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^event-view/([^/]*)/([^/]*)/$ ./index.php?page_id=439&titel=$1&view_event=$2 [L]

这里439是我提到的“偶数视图”的页面ID。

但是,我无法使用“http://ben.scbw.zec.dev/event-view/this-is-test-event/14/”网址访问该网页。它显示我404未找到错误。 我已经尝试了4-5天,但无法找到解决方案。

如果有人能帮助我,我真的非常感谢。

1 个答案:

答案 0 :(得分:0)

首先,wordpress使用内部RewriteRules映射URL。 因此,您不必在htaccess中添加其他RewriteRule标签。 您必须注册查询参数,并将重写规则添加到内部wordpress重写引擎中。

@see https://developer.wordpress.org/reference/classes/wp/add_query_var/ @see https://developer.wordpress.org/reference/classes/wp_rewrite/