我有这些重写规则:
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个斜杠。
相反,如果我添加第3个斜杠和后面的内容,它会给我找不到错误404。 我该如何解决这个问题?
答案 0 :(得分:1)
您需要添加^
以将匹配绑定到整个URI。正则表达式:([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]