- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, уважаемые специалисты по RegEx, .htaccess и RewriteEngine.
Возникла необходимость перенапрявлять несуществующие (кроме en, pda, m, mobile) региональные поддомены переводчику google, прописав в .htaccess правила для основных языков. По этим поддоменам есть небольшой входящий траф, но он весь сейчас идёт на русскоязычную главную, при условии, что в настройках сервера все (*) поддомены разрешены.
Для попытки попробовать встретить пользователя на его языке, в .htaccess прописано правило, например для UA:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ua.logistic.ru
RewriteRule (.*) http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru/$1 [R=301,L]
Проблема в том, что такое правило перенаправляет в GET гуглу всё, влоть до пути по сайту, но отбрасывает так необходимый GET, например такой документ:
http://www.logistic.ru/news/news.php?num=2012/10/02/18/11185410
меняем поддомен www на ua, и в гугл попадает только
http://www.logistic.ru/news/news.php
Пожалуйста, помогите составить правильное правило, чтобы в GET переводчику попадал полный адрес документа, и с путями до файла, и со всеми GET-параметрами.
Заранее спасибо!
дело в том, вам надо сделать Escape преобразование вашего урла, чтобы его понял переводчик гугла, т.е. чтобы знак вопроса (?) стал %3F (возможно в ваших урлах встречается еще и ампесанд то его также надо заменить на %26 а если быть совсем строгим то слеш / надо заменять на %2F - хотя это в принципе и не обязательно)
итак с вашим случаем я раньше не сталкивался, но вот сейчас посмотрел в инете, короче вот что нарыл - http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_b
а если короче, то там написано что для Escape преобразование нужно использовать флаг B т.е. у вас по идее должно быть как то так
RewriteEngine On
RewriteCond %{HTTP_HOST} ua.logistic.ru
RewriteRule (.*) http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru/$1 [R=301,L,B]
вообщем пробуйте, по идее должно получится, но я не проверял
вообщем пробуйте, по идее должно получится, но я не проверял
Спасибо, но [R=301,L,B] не проканало:
Адресная строка: http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru/news%252fnews.php
Строка к переводу: http://logistic.ru/news%2Fnews.php
Ответ Гулла: Not Found
The requested URL / news / news.php was not found on this server.
Всё таки у меня сильное ощущение, что локальный GET туда просто не доставляется,
ведь из командной строки гугл понимает всё хорошо и без Escape-последовательностей,
вот пример как должно по идее быть (рабочая ссылка):
http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru/news/news.php?num=2012/10/03/18/11185410
попробуйте заменить
RewriteRule (.*) http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru/$1?{%QUERY_STRING} [R=301,L]
или
RewriteRule (.*) http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru/$1%3F{%QUERY_STRING} [R=301,L]
RewriteEngine On
RewriteCond %{HTTP_HOST} ua.logistic.ru
RewriteRule (.*) http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru/$1 [R=301,L,QSA]
[R=301,L,QSA]
Спасибо, уже намного лучше! ) Вот результирующий url:
http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru/news/news.php&num=2012/10/03/18/11185410
Осталась одна маленькая проблема: ...news.php&num... поменять на news.php?num и всё тогда заработает!
А тут через htaccess кажется никак. Сделайте реврайт на какой нибудь файл-обработчик и оттуда редиректите на нужный адрес.
RewriteEngine On
RewriteCond %{HTTP_HOST} ua.logistic.ru
RewriteRule (.*) han.php [L]
<?php
header( "Location: http://translate.google.com/translate?sl=ru&tl=uk&u=logistic.ru{$_SERVER['REQUEST_URI']}", true, 301 );
exit;
?>