我在本地用"ben.scbw.zec.dev“vhost运行wordpress。
我已经创建了页面模板来显示特定事件的详细信息。
http://ben.scbw.zec.dev/event-view?view_event=14
我可以用上面的url访问页面,"event-view“是页面上的slug,页面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 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是我提到的"even-view“的id页。
但是,我无法访问带有"http://ben.scbw.zec.dev/event-view/this-is-test-event/14/“url的页面。它显示404未找到错误。我已经尝试了4-5天,但没有找到解决方案。
我真的非常感谢有没有人能在这方面帮我。
发布于 2020-02-28 16:45:22
首先,wordpress使用内部RewriteRules来映射url。因此,您不必向htaccess添加额外的RewriteRule-tag。您必须注册查询参数并向内部wordpress重写引擎添加重写规则。
@see https://developer.wordpress.org/reference/classes/wp/add_query_var/ @see https://developer.wordpress.org/reference/classes/wp_rewrite/
https://stackoverflow.com/questions/32716090
复制相似问题