Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   mod_rewrite: правило для браузеров IE 5/6 (http://forum.oszone.net/showthread.php?t=166537)

blacks2 06-02-2010 21:51 1340863

mod_rewrite: правило для браузеров IE 5/6
 
Здравствуйте.

Есть задача:
Нужно через htaccess /modrewrite забанить только IE5 и IE6 (арт проект)
Вчера перелопатил кучу сайтов. Перепробовал много вариантов.
Но ничего толкового не получалось. Тестил на IE7 и IE6.
Обычно банился только IE7 / оба / никто

Тесты были на
1. IEtester + denver
2. http://browsershots.org
3. http://spoon.net/browsers/
(Виртальн машину поставить пока возможности нет)

Вот что пробовал (каждая строчка есть испробованный в-т)

Код:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
  1. RewriteCond %{HTTP_USER_AGENT} "MSIE 5"
  2. RewriteCond %{HTTP_USER_AGENT} MSIE\ ([56])\.
  3. RewriteCond %{HTTP_USER_AGENT} MSIE\ [^7]
  4. RewriteCond %{HTTP_USER_AGENT} ^.*(MSIE\ [1-6]).*$
  5. RewriteCond %{HTTP:USER_AGENT (MSIE/[56])
  6. RewriteCond %{HTTP_USER_AGENT} (MSIE\ [1-6])
  7. RewriteCond %{HTTP_USER_AGENT} "MSIE [56]"
RewriteRule .* ban.html

Кто может помочь с решением помогите пожалуйста!
Спасибо.

Sham 06-02-2010 23:43 1340961

№2 оставьте (можно без скобок), только добавьте флаг [L] к правилу, иначе может получиться бесконечный цикл.

blacks2 07-02-2010 01:28 1341039

Спасибо Sham Sham, попробовал еще раз указанный вами варинат

1. IEtester
2. http://spoon.net/browsers
- при тесте забанен оба браузера

3. http://browsershots.org/
- забанен только ie6

Где же правда?
+ при тесте с рабочей машины в IE8 сайт был забанен :( - странно ведь в директивах htaccess нет ничего про 8ку

Sham Sham
есть ли у вас возможность проверить работу модреврайта на ie 5 6 7 8 ?


Весия htaccess которую использовал
Код:

DirectoryIndex index.html 

AddDefaultCharset utf-8
DefaultLanguage ru-RU
AddLanguage ru .ru
AddLanguage en .en
AddLanguage de .de
AddCharset UTF-8 .html .htm .txt .sh .shtml .php .php3
        <IfModule mod_charset.c>
                CharsetDisable on
                CharsetPriority UTF-8 windows-1251 koi8-r ISO-8859-5 ibm866
                CharsetDefault utf-8
                CharsetSourceEnc utf-8
                AddDefaultCharset utf-8
        </IfModule>

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_USER_AGENT} MSIE\ ([56])\.
RewriteRule .* ban.html [L]


Sham 07-02-2010 03:06 1341068

Firefox + User Agent Switcher для тестирования. Все должно работать.

blacks2 07-02-2010 07:25 1341101

Спасибо Sham!

User Agent Switcher - для IE6 бан как и нужно IE7 и IE8 без бана :)
Но! - почему тогда IE8 установленный на чистую XP отсылается мод реврайтом на бан страницу? :angry2:


Попробовал сервис для проверки заголовков-ответов с сайта http://web-sniffer.net/ - там с бан/не бан работает хорошо
(правда для проверки IE8 нет)

завтра займусь проверкой юзерагента на моем IE8

blacks2 07-02-2010 20:18 1341527

Протестил какие "обманщики" отдают какой заголовок:
Использовал сервис http://www.useragentstring.com/

от "реальных" установленных IE на XP
IE8 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;
IE6 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;

User Agent Switcher
IE8 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
IE7 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
IE6 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

IEtester
IE8 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;
IE7 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;
IE6 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;

spoon.net
IE8 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;
IE7 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;
IE6 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;

http://browsershots.org/
- Для ответа нужно писать скрипт. Но к сожалению пока на это нет времени. Да и в PHP не силен.

Теперь понятно почему у меня банились сразу несколько версий хотя в htaccess предположительно было все правильно.


Sham, люди добрые подскажите как быть?
- получается с "баном через htaccess" могут быть проблемы... или у меня что-то настройками не так?

Sham 07-02-2010 20:44 1341543

Проблема не в самом браузере, а в заголовке User-Agent, который ваш браузер шлет. Если правило срабатывает, то значит заголовок содержит строку 'MSIE 6'.


P.S. Для User Agent Switcher можно отсюда скачать полный список строк для разных браузеров и систем.

blacks2 07-02-2010 21:18 1341572

Ок. С виртуальными понятно дело - много чего может запутанно.
Но почему стандартный, нормальный IE8 в заголовке отсылает еще и
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;
?

Sham 07-02-2010 21:37 1341586

имхо заголовок отсылается системный (из реестра), т.е. того браузера, который встроен в систему Windows, а это может быть только одна версия браузера IE.

Вывод такой: при установке IE8 поверх IE6 (или наоборот) в реестре оказалось значение IE6. Наверное, можно исправить (найти нужный ключ поиском по реестру).

blacks2 07-02-2010 21:53 1341596

Цитата:

Цитата Sham
Вывод такой: при установке IE8 поверх IE6 (или наоборот) в реестре оказалось значение IE6. Наверное, можно исправить (найти нужный ключ поиском по реестру). »

Получается пользователь установивший таким способом новый ослик попадет в бан :/ !?
Никтож спецом не будет править реестр...

mar 08-02-2010 10:33 1341902

blacks2,
скорей всего получается. Но банить по User-Agent, по-моему изначально неправильная идея.


Время: 15:22.

Время: 15:22.
© OSzone.net 2001-