我想重写以下网址:
http://domain.com/quiz/1/234
要
http://domain.com/quiz.php?id=1&uid=234
我在htaccess文件中有以下规则:
RewriteRule ^quiz/([0-9]+)/([0-9]+)$ quiz.php?id=$1&uid=$2 [L]
使用上述规则,两个查询字符串必须存在于要重写的URL中;我想更改此行为并使第二个查询字符串(示例中为234
)是可选的,以便在调用以下URL时:
http://domain.com/quiz/1
它将重定向到:
http://domain.com/quiz.php?id=1
如果我打电话:
http://domain.com/quiz/1/234
它将重定向到:
http://domain.com/quiz.php?id=1&uid=234
我可以使用2个单独的规则来实现这一点,但我认为有更正确的方法来实现它。
答案 0 :(得分:0)
RewriteRule ^quiz/(\d+)(?:/(\d+))?/?$ quiz.php?id=$1&uid=$2 [L,NC,QSA]
(?:/(\d+))?
使用可选的尾部斜杠使第二部分完全可选。