这是我的重写规则代码:
add_rewrite_rule(\'tides/([^/]+)/([^/]*)\', \'index.php?page_id=4348&location=$matches[1]&month=$matches[2]\', \'top\');
add_rewrite_tag(\'%location%\', \'([^&]+)\');
add_rewrite_tag(\'%month%\', \'([^&]*)\');
这对于以下URL非常有用:
/tides/mylocation/mymonth/
但404在以下方面:
/tides/mylocation/
每次更改代码时,我都刷新重写规则。我试着换衣服
*
到
+
但是没有帮助。
有什么想法吗?
Edit:
一些答案建议添加另一条重写规则,因此我添加了:
add_rewrite_rule(\'tides/([^/]+)/$\', \'index.php?page_id=4348&location=$matches[1]\', \'top\');
在我的其他规则之前,但仍然没有运气。
最合适的回答,由SO网友:Seamus Leahy 整理而成
正则表达式要求存在最后一个斜杠,默认情况下不会出现。所以路径tides/mylocation/
缩写为tides/mylocation
然后进行测试。相反,使用?
并更新匹配号。
add_rewrite_rule(\'tides/([^/]+)(/([^/]+))?\', \'index.php?page_id=4348&location=$matches[1]&month=$matches[3]\', \'top\');