Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: .htaccess и RewriteEngine, помогите а то вконец запутался..
цитата
15/08/08 в 03:35
 a69
Доброго дня.
Помогите, а то перечитал кучу форумов вроде все делаю как рассказывают и не работает.

Мне надо чтобы все, английские, китайские, немецкие и французские, видели или 404 или уходили, допустим, на microsoft.com

делаю так:
RewriteEngine On
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} fr.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-gb.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} fr-ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-ch.* [NC,OR]
RewriteRule .* http://www.microsoft.com/ [R,L]


Не работает, все перекидывает на microsoft.com
Что не так, а то от экспериментов уже устал.
цитата
15/08/08 в 03:48
 freeek
может так

Код:
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (de|en|ch) [NC]
RewriteRule .* http://www.microsoft.com/ [R,L]


ну и там поэксперементируй
цитата
15/08/08 в 07:54
 Soft-Com
a69 писал:
Доброго дня.
Помогите, а то перечитал кучу форумов вроде все делаю как рассказывают и не работает.

Мне надо чтобы все, английские, китайские, немецкие и французские, видели или 404 или уходили, допустим, на microsoft.com

делаю так:
RewriteEngine On
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} fr.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-gb.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} fr-ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-ch.* [NC,OR]
RewriteRule .* http://www.microsoft.com/ [R,L]


Не работает, все перекидывает на microsoft.com
Что не так, а то от экспериментов уже устал.


ошибка в последней строке RewriteCond:
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-ch.* [NC,OR]
- после неё сразу же идёт RewriteRule.

т.к. ты ставишь в последней строке последним условием [NC,OR], то ВСЕ запросы подпадают под это правило, потому что есть такое понятие как "пустое правило".

измени последний RewriteCond так:
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-ch.* [NC]
и твой хтаксес будет работать.
цитата
15/08/08 в 18:45
 a69
Супер, спасибо smail54.gif
Причем оба варианта рабочие, дело действительно было в OR

попрошу еще одну подсказку.
Китайские бровзеры блокирует, немецкие также, а вот английские проблемно, т.е. если ставлю en то блокирует заодно и русские, вероятно потому как в бровзере также есть en.

Как выйти с этой ситуации, какую правильно маску нарисовать, чтоб ru проходило, а остальные нет?

Еще раз спасибо!

p.s. чтоб ru работала написал так
RewriteCond %{HTTP:Accept-Language} (en-ch|de|ch) [NC]


Эта страница в полной версии