在wordpress中为wordpress页面重写规则



我在本地使用"ben.scbw.zec.dev" vhost运行wordpress。

我已经创建了页面模板来显示特定的事件细节。

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

我可以访问页面与上面的url "event-view"是在页面和页面id = 439的塞格。

现在,我想用下面的url访问它。

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

"this-is-test-event"是事件的标题,我已经创建了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创建代码,我添加了以下代码。

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是我提到的"even-view"的页id。

但是,我无法访问带有"http://ben.scbw.zec.dev/event-view/this-is-test-event/14/"url的页面。它显示我404未找到错误。我已经尝试了4-5天,但没有找到解决方案。

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

首先,wordpress使用内部rewriterrules来映射url。所以你不需要在你的htaccess中添加一个额外的rewriterule标签。你必须注册你的查询参数,并将重写规则添加到内部wordpress重写引擎。

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

最新更新