我正在使用mod_rewrite重写我的链接,如下所示。我定义了从/test/1234_5678_...
到/test.php?id=1234
的重定向,如下所示:
RewriteRule test/(.*)_(.*)$ test.php?id=$1
完美地运作。现在,我想将以下重定向添加到/test/1234_5678_.../print
到/test.php?id=1234&print
。因此,我在上面的一行之前添加了以下行。重定向不起作用,似乎只有第二个规则适用。我是否在模式匹配方面做错了什么?问题是可以有多个下划线而我只在模式中使用过一个吗?
RewriteRule test/(.*)_(.*)/print$ test.php?id=$1&print
RewriteRule test/(.*)_(.*)$ test.php?id=$1
答案 0 :(得分:1)
这两个规则对我来说都很合适,但您可能希望将第一个分组更改为([0-9]+)
或([^_]+)
,将第二个分组更改为[^/]+
,并添加一些L
} flags:
RewriteRule test/([^_]+)_([^/]+)/print$ test.php?id=$1&print [L]
RewriteRule test/([^_]+)_([^/]+)$ test.php?id=$1 [L]