0

我真的坚持创建一个排除文件被重写的正则表达式。

我正在使用 Cherokee 作为 Web 服务器,并希望将 http://example.com/123 之类的链接转换为 http://example.com/get.php?short=123。

我的问题是我想为文件而不是文件创建一个开关。

/([^.]+) => /get.php?short=$1

/([.]+) => /$1

我想第二个以某种方式排除了第一个,但我无法找到。

如何解决这个问题或有更好的解决方案?

保罗

4

2 回答 2

1

您必须在同一虚拟服务器行为规则中添加更高优先级的规则,并匹配“文件存在”。您很可能希望它使用“静态内容”处理程序。

这样,当评估行为规则时,静态文件将与该规则匹配(并发送)。每当请求不针对静态文件时,将继续根据放置正则表达式规则的行为列表的其余部分进行评估。

尽管它与某些人仍然习惯的有所不同,但 Cherokee 的行为列表比 Apache 上的对应物更加直观和强大(其中所有内容都与一堆单个字符参数一起定义)。

于 2010-11-11T06:17:08.200 回答
0

你可能想要:

RewriteCond -f
于 2010-11-10T23:11:39.080 回答