我正在使用apache和.htacess来重写我的网址。
我想在ad.php页面中有一个可选参数“mess”。我写道:
RewriteRule ^ad-([A-Za-z0-9-]+)/?$ ad.php?id=$1 [NC,L]
RewriteRule ^ad-([A-Za-z0-9-]+)-([A-Za-z0-9-]+)/?$ ad.php?id=$1&mess=$2 [NC,L]
但似乎只考虑了第一条规则。 ad-100和ad-100-1应该提供不同的东西,但它们不会。当我删除第一条规则时,ad-100不再有效(显然),而ad-100-1现在正在运行,因为它采用了第二条规则。
你知道我如何拥有可选参数吗?我应该将这两个规则合并在一起吗?
答案 0 :(得分:2)
这应该有效:
RewriteCond %{REQUEST_URI} !ad\.php [NC]
RewriteRule ^ad-([^-]+)/?$ ad.php?id=$1 [NC,L]
RewriteCond %{REQUEST_URI} !ad\.php [NC]
RewriteRule ^ad-([^-]+)-([^/]+)/? ad.php?id=$1&mess=$2 [NC,L]
可选地,如果在只有一个参数的情况下mess
值为空时没有问题,则可以对两个参数使用一个规则。像这样:
RewriteCond %{REQUEST_URI} !ad\.php [NC]
RewriteRule ^ad-([^-]+)-?([^/]+)?/? ad.php?id=$1&mess=$2 [NC,L]