我在本地使用"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/