0

我正在使用 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 现在正在起作用,因为它采用了第二条规则。

你知道我怎么能有可选参数吗?我应该将这两条规则合二为一吗?

4

1 回答 1

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]
于 2013-03-29T11:54:25.397 回答