我的网址类似于games / xbox / 2 2是我需要重写网址的页码。这就是我正在使用的:
RewriteRule games/(.*?)/$ games/consoles.php?console=$1
RewriteRule games/(.+?)/(.+?)/$ games/consoles.php?console=$1&page=$2
第一个规则正常但第二个规则是将consoles.php作为$ 1而不是xbox
返回答案 0 :(得分:0)
RewriteRule games/([A-Za-z0-9]+)/?$ games/consoles.php?console=$1
RewriteRule games/([A-Za-z0-9]+)/([0-9]+)/?$ games/consoles.php?console=$1&page=$2
使用(.*?)
甚至匹配/
字符,因此xbox / 2被视为一个整体
答案 1 :(得分:0)
尝试类似:
RewriteRule games/([^/]+)/([^/]+)/?$ games/consoles.php?console=$1&page=$2 [L]
RewriteRule games/([^/]+)/?$ games/consoles.php?console=$1 [L]
我首先将你最具体的规则放在第一位 - 这样你就不会做一般的匹配,然后是一个更具体的匹配,一般重写。
我还指定了[L]
标志,表示您希望引擎在此时停止寻找更多匹配项。由于[L]
标志,在这种情况下重新排序规则是多余的,但这是一个很好的做法。
我也略微改变了表达方式。我没有像之前的海报那样使用([A-Za-z0-9]+)
,而是将其更改为([^/]+)
,因为除了斜杠之外,它将匹配所有内容,因此您可以拥有奇怪的控制台或游戏名称。如果你想让它更具体,请随意使用,但这种方式提供了最常用的用例。