2

我对 url 重写真的很陌生,并且完全不喜欢正则表达式,如果我的问题很愚蠢,很抱歉(因为我不完全理解这个主题)

这是我的重写规则

RewriteRule ^trends/conversion/([_a-zA-Z0-9-]*) trends/conversion.php?$1

RewriteRule ^trends/([_a-zA-Z0-9-]*)$ trends/index.php?$1

基本上,我总是以 index.php 页面结束,当然,除非我删除第二条规则。我可以让 mod 重写在它到达conversion.php 后立即停止吗?

提前致谢

法比奥

ps 我忘了说我需要针对两个页面的查询字符串,这就是为什么第二个页面上也有一个正则表达式。不幸的是,我无法更改此 url 结构,这就是我被卡住的原因

4

1 回答 1

1

您必须首先L在您的第一条规则中添加一个标志,然后在您的第二条规则中添加一个标志,RewriteCond以防止conversion.php再次被重写

RewriteRule ^trends/conversion/([_a-zA-Z0-9-]*) trends/conversion.php?$1 [L]

RewriteCond %{REQUEST_URI} !conversion\.php
RewriteRule ^trends/([_a-zA-Z0-9-]*)$ trends/index.php?$1 [L]

您应该考虑将查询字符串更改为类似id=$1或类似的内容。否则,每个请求都没有相同的GET参数,而是任意字符串。

于 2013-03-12T15:52:19.980 回答