2010-09-02 3 views
0

Я пытаюсь установить простое правило в моем httpd.conf как предвестник некоторых более сложных правил, которые мне нужно настроить.Перевернув REQUEST_URI с! в 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 будет применять следующее правило для каждого запроса, который не match /text.txt.

Какая глупость, простая ошибка, которую я здесь делаю? Я Googled, пока у меня не закружилась голова.

+0

Возможно, это связано с вашими другими правилами (по причинам, о которых я могу подробнее остановиться), не могли бы вы также опубликовать их? –

+0

Спасибо, Тим - нет других правил перезаписи за пределами стандартного блокатора TRACE/TRACK. Тем не менее, я установил новую установку Apache на запасной машине, и вышеприведенные правила работают там, как я ожидал, поэтому это явно связано с настройкой на первой машине. Это не так плохо, потому что я просто хотел, чтобы машина создавала правила, и я могу сделать это с новой установкой. – Nick

ответ

0

Эта проблема возникает из-за других параметров конфигурации на рассматриваемой машине, поскольку правила работают нормально при установке Apache Apache.

Смежные вопросы