0

我一直在 Windows 上使用 isapi_rewrite,但我想转移到 linux/apache 并在转换我现有的规则时遇到了问题。我在以下网址重写之后:

访客/提供的示例网址:*.php/param1/value1/param2/value/2/param3/value3/paramx/valuex

匹配到:whatever.php?value1=param1¶m2=value2¶m3=value3¶mx=valuex

我以前在 isapi_rewrite 中使用过这个规则:

RewriteEngine on
RewriteRule ^(.*?\.php)/([^/]*)/([^/]*)(/.+)? $1$4?$2=$3 [NC,LP,QSA]

但是 LP (Loop) 不是 apache mod_rewrite 标志,我无法弄清楚如何用 mod_rewrite 中的合适规则替换此规则。

最主要的是参数/值的数量是未知的,所以它需要用 / 替换所有的?、& 和 =。我很感激我可以通过删除参数和文件名使模式更清晰,但我真正想做的是将应用程序转移到 linux 并在更改应用程序引用链接的方式之前工作。

谢谢希望...

4

1 回答 1

1

您可以使用标志 'next|N' 来循环重写过程。请参阅apache.org 上的 mod_rewrite 文档

于 2011-02-15T17:58:28.073 回答