1

我正在使用 mod_rewrite 重写我的链接,如下所示。我定义了一个重定向 from /test/1234_5678_...to/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
4

1 回答 1

1

这两个规则对我来说都很好,但是您可能希望将第一个分组更改为([0-9]+)or ([^_]+),将第二个分组更改为[^/]+,并添加一些L标志:

RewriteRule test/([^_]+)_([^/]+)/print$ test.php?id=$1&print [L]
RewriteRule test/([^_]+)_([^/]+)$ test.php?id=$1 [L]
于 2013-10-28T02:00:27.080 回答