mod_rewrite:2个相同的条件,正常工作

时间:2012-09-20 07:01:25

标签: variables mod-rewrite conditional-statements

大家好日子!

是否可以像这样进行mod重写?

RewriteRule ^([A-Za-z-0-9-]+)/([A-Za-z0-9-]+)/?$    $1.php?param1=$2 [L]

完全相同
RewriteRule ^([A-Za-z-0-9-]+)/([A-Za-z0-9-/]+)/?$   $1.php?param=$2 [L]

我已经在同一个htaccess中尝试了这两个,但系统只读取第一个。 我想做的是我可以使用

同时显示两个参数
<?php
echo $_GET[param1];
echo $_GET[param];
?>

提前感谢和更多力量!

1 个答案:

答案 0 :(得分:0)

你可以这样做:

RewriteRule ^([A-Za-z-0-9-]+)/([A-Za-z0-9-]+)/?$    $1/$2?param1=$2
RewriteRule ^([A-Za-z-0-9-]+)/([A-Za-z0-9-/]+)/?$   $1.php?param=$2 [L,QSA]

另一件事是你的第二个规则中的第二个分组与尾部斜杠不匹配,因为([A-Za-z0-9-/]+)是贪婪的并且会吞噬一个尾部斜杠。您可以通过添加?([A-Za-z0-9-/]+?)

来使其不合适