0

我有这些重写规则:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /
RewriteRule ([0-9A-Za-z_]+)/([0-9]+)/([0-9]+)$ /dab.php?banner=$1&mid=$3&iid=$2 [L]
RewriteRule ([0-9A-Za-z_]+)/([0-9]+)/([0-9]+)/(.+)$ /dab.php?banner=$1&mid=$3&iid=$2&url=$4 [L]

他们应该将我重定向到:

/dab.php?banner=$1&mid=$3&iid=$2 

如果只有 2 个斜线,并且:

dab.php?banner=$1&mid=$3&iid=$2&url=$4

如果有 3 个斜线。

相反,如果我在其后添加第三个斜杠和内容,它会给我找不到错误 404。我该如何解决这个问题?

4

1 回答 1

1

您需要包含 a^以将您的匹配项绑定到整个 URI。regex:([0-9A-Za-z_]+)/([0-9]+)/([0-9]+)$匹配 3 个斜杠,但就在第一个斜杠之后,这不是您想要的:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9A-Za-z_]+)/([0-9]+)/([0-9]+)$ /dab.php?banner=$1&mid=$3&iid=$2 [L]
RewriteRule ^([0-9A-Za-z_]+)/([0-9]+)/([0-9]+)/(.+)$ /dab.php?banner=$1&mid=$3&iid=$2$url=$4 [L]
于 2013-09-20T17:36:29.300 回答