【发布时间】:2011-04-07 07:36:47
【问题描述】:
我正在尝试在我的 httpd.conf 中设置一个简单的规则,作为我需要设置的一些更复杂规则的前导。
如果我使用这个:
RewriteCond %{REQUEST_URI} ^/test\.txt
RewriteRule ^(.*)$ http://127.0.0.1:8080 [R,L]
...然后对 /test.txt 的请求按预期转到端口 8080。
但是如果我添加一个 !翻转 REQUEST_URI 匹配,如下所示:
RewriteCond %{REQUEST_URI} !^/test\.txt
RewriteRule ^(.*)$ http://127.0.0.1:8080 [R,L]
...然后每个请求都会发送到端口 8080,包括对 /test.txt 的请求。我期待 text.txt 被允许通过,因为 RewriteCond 将对每个 不 匹配 /text.txt 的请求应用以下规则。
我在这里犯了什么愚蠢、简单的错误?我用 Google 搜索,直到头晕目眩。
【问题讨论】:
-
这可能与您的其他规则有关(原因我可以详细说明),您也可以发布它们吗?
-
谢谢,蒂姆 - 除了标准的 TRACE/TRACK 阻止程序之外,没有其他重写规则。但是,我已经在备用机器上设置了全新的 Apache 安装,并且上面的规则正如我所期望的那样在那里工作,所以这显然与第一台机器上的设置有关。这还不错,因为我只是想要一台机器来构建规则,而我可以通过新安装来做到这一点。
标签: apache mod-rewrite httpd.conf