Соответствует всем запросам, кроме общедоступного root для IE6 useragent с использованием Apache Rewrite - PullRequest
0 голосов
/ 18 февраля 2012

У меня есть правило для моего локального хоста (только моего локального сервера WAMP), которое переписывает только localhost / в index.php и все другие запросы в rewrite.php. Я смог добиться этого, используя следующее ...

RewriteEngine on
RewriteRule ^$ index.php [QSA]

Я пытаюсь создать противоположное правило, которое соответствует всем запросам , кроме ^$, поэтому !^$ однако это не работает. По сути, я хочу сделать исключение для IE6 для некоторых более старых вещей для сценариев «на всякий случай», хотя для моих современных проектов у меня есть универсальная страница обновления.

Вот один пример, который я попробовал. Похоже, он будет работать, хотя и не работает.

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} MSIE\ ([56])\.
RewriteRule !^$ upgradedamnit\.php [L]

Некоторые уточнения ...

  1. Я очень строг в отношении того, чтобы не использовать пользовательские агенты, хотя, честно говоря, если вы подделываете свой браузер, чтобы выдать себя за IE6 и ожидаете, что все будет работать хорошо, у меня для вас есть плохие новости.

  2. Это только для моего локального окружения, а не для моего живого окружения, хотя я всегда тестирую локально, прежде чем что-то зафиксировать в живом окружении.

1 Ответ

0 голосов
/ 18 февраля 2012

Сделайте это:

RewriteEngine on
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

RewriteCond %{HTTP_USER_AGENT} MSIE\ [56]\. [NC]
RewriteRule ^ upgradedamnit.php? [L]

Последние 2 строки должны быть самыми строками после RewriteRule ^ - [L].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...