Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
1

Редирект на мобильный домен (.htaccess)

02.10.2012, 00:35. Показов 4189. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем появился данный вопрос. Решил так.
PHP
1
2
RewriteCond    %{HTTP_USER_AGENT}  (iPhone|iPod|iPad|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone)  [NC]
RewriteRule    (.*)    http://m.домен.tk/  [L,R=302]
Но так нет возможности выбора главного домена и оставаться на нем. Решил использовать куки.
Создал в корне два *.php файла
PHP
1
setcookie('mobile', false);
PHP
1
setcookie('mobile', true);
Далее делаю
PHP
1
2
RewriteCond %{HTTP_COOKIE} ^.*mobile=true.*$ [NC] 
RewriteRule    (.*)    http://m.домен.tk/  [L,R=302]
И ничего не происходит. Как нужно делать?

Добавлено через 8 часов 34 минуты
Убрал "=true" стало норм. Ну с булевыми переменными так конечно прокатывает, а вот как с остальными пока вопрос.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2012, 00:35
Ответы с готовыми решениями:

Htaccess переадресация на домен
Привет всем, помогите, пожалуйста, с переадресацией. Мне нужно чтобы все запросы на любые страницы,...

Редирект в htaccess
Подскажите как организовать редирект по ссылкам:...

.htaccess редирект
Здравствуйте. Как сделать редирект для всех пользователей, но при этом с определенного ip редирект...

Редирект в htaccess
К сожалению, в такой же предыдущей теме уже никто не отвечает. Помогите сделать редирект страниц...

22
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
05.10.2012, 00:14  [ТС] 2
Со всем разобрался. Теперь такой вопрос.
Как перенаправить на моб. домен с любой страницы сайта, а не только из index.php? Ну т.е. допустим из domen.ru/dir.html = > m.domen.ru
Это хотя-бы, но хотелось бы чтобы проверялось существует ли m.domen.ru/dir.html и если существует, то направлялось бы туда, если нет, то в m.domen.ru
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.10.2012, 12:40 3
Serg046,
Код
RewriteCond http://m.домен.tk/%{REQUEST_FILENAME} -f
RewriteCond http://m.домен.tk/%{REQUEST_FILENAME} -d
RewriteRule (.*) http://m.домен.tk/$1 [L,R=302]
1
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
05.10.2012, 21:59  [ТС] 4
fedin-ilja2010, не работает. Как я понял в условие получается проверяется есть ли файл
http://m.домен.tk/http://домен.tk/file.php вместо http://m.домен.tk/file.php
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.10.2012, 22:01 5
Serg046, Опечаточка, исправил:
Код
RewriteCond http://m.домен.tk/%{REQUEST_FILENAME} -f
RewriteCond http://m.домен.tk/%{REQUEST_FILENAME} -d
RewriteRule (.*) http://m.домен.tk/$1 [L,R=302]
Цитата Сообщение от Serg046 Посмотреть сообщение
Как я понял в условие получается проверяется есть ли файл
http://m.домен.tk/http://домен.tk/file.php
С чего вы взяли? (интересно)
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
05.10.2012, 22:24  [ТС] 6
А что исправили понять не могу... Вот, теперь 404 выдает если файл находит, это уже хорошо.
Ну то есть у меня на субдомене и в основном есть file.html
Я ввожу domen.tk/file.html, а мне вместо m.domen.tk/file.html 404 выкидывает.
А если сам открываю m.domen.tk/file.html, то все норм.
Если ввожу на основном домене файл которого нет на сабдомене редиректа нет, так что условие проверяется верно выходит..

Добавлено через 6 минут
Цитата Сообщение от fedin-ilja2010 Посмотреть сообщение
С чего вы взяли? (интересно)
Ну думал в {REQUEST_FILENAME} полный путь
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.10.2012, 22:26 7
Serg046, Я ничего не исправил!
Вот:
Код
RewriteCond http://m.домен.tk/%{REQUEST_FILENAME} -f
RewriteCond http://m.домен.tk/%{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ http://m.домен.tk/$1 [L,R=302]
Теперь точно исправил!
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
05.10.2012, 22:27  [ТС] 8
и кстати мне нужно еще добавить условие, что иначе редирект в корень субдомена. Что типа также следом написать, но уже с !-f и !-d?
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.10.2012, 22:28 9
Цитата Сообщение от Serg046 Посмотреть сообщение
Ну думал в {REQUEST_FILENAME} полный путь
Там же написано: Запрашиваемое имя файла, не абсолютный адрес страницы!

Добавлено через 51 секунду
Цитата Сообщение от Serg046 Посмотреть сообщение
и кстати мне нужно еще добавить условие, что иначе редирект в корень субдомена. Что типа также следом написать, но уже с !-f и !-d?
У вас всё будет наоборот!
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
05.10.2012, 22:29  [ТС] 10
Все равно 404...
Куда то не туда оно редиректит. И мне кажется в редиректный адрес не добавлено имя каталога, или не правильно кажется?
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.10.2012, 22:40 11
Serg046, Ну тогда вот:
Код
RewriteCond %{HTTP_COOKIE} ^.*mobile.*$ [NC] 
RewriteRule    ^(.*)$    http://m.домен.tk/  [L,R=302]
0
Vovan-VE
06.10.2012, 07:09
  #12

Не по теме:

Цитата Сообщение от fedin-ilja2010 Посмотреть сообщение
Код
RewriteCond http://m.домен.tk/%{REQUEST_FILENAME} -f
fedin-ilja2010, REQUEST_FILENAME - полный локальный путь в файловой системе. Поэтому данная строка (из которой получится http://m.домен.tk/var/www/pupkin-vasily/public_html/...) не имеет смысла - условие всегда будет ложно.
http://httpd.apache.org/docs/2... ewritecond

1
KOPOJI
06.10.2012, 10:22
  #13

Не по теме:

fedin-ilja2010, почитайте внимательнее еще раз то что я писал в Вашей теме :)
Руководство по настройке ЧПУ (Rewrite)

Цитата Сообщение от KOPOJI Посмотреть сообщение
REQUEST_FILENAME (или SCRIPT_FILENAME) полный путь к файлу или скрипту (или папке, и т.п.) соответствующему этому запросу

2
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
06.10.2012, 13:59 14
Serg046,
Код
RewriteCond http://m.домен.tk/%{REQUEST_URI} -f
RewriteCond http://m.домен.tk/%{REQUEST_URI} -d
RewriteRule ^(.*)$ http://m.домен.tk/$1 [L,R=302]
Добавлено через 10 минут
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left.\begin{matrix}Vovan-VE,\\KOPOJI,\end{matrix}\right\}Teper-pravilno?
0
Vovan-VE
06.10.2012, 14:01
  #15

Не по теме:

Цитата Сообщение от fedin-ilja2010 Посмотреть сообщение
Teper-pravilno?
Проверьте у себя. Сходите по ссылке и почитайте.

0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
06.10.2012, 14:08 16
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Проверьте у себя
Не могу
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
06.10.2012, 19:08  [ТС] 17
Нет, все равно не работает, но что интересно если сделать так
Код
RewriteCond http://m.домен.tk/%{REQUEST_URI} !-f
RewriteCond http://m.домен.tk/%{REQUEST_URI} !-d
RewriteRule ^(.*)$ http://m.домен.tk/$1 [L,R=302]
То срабатывает именно так как нужно, ну т.е. условие не верное. Причем файл правильный, ощущение что где то лишний слеш или что типа того. В общем в $1 правильное имя файла оказалось.

Добавлено через 9 минут
Причем с подкаталогами тоже работает, т.е. путь точно правильно передается... Пример
Запрос - http://domen.tk/file/file.html
Ответ - http://m.domen.tk/file/file.html

Помогите... Какой-то заколдованный файл.

Добавлено через 6 минут
Понял что RewriteCond'ы тут не причем. Убрал их и все равно редирект идет правильно. Я думал $1 задается как раз в условиях, а видимо это что-то вроде глобальной переменной.

Добавлено через 2 минуты
Т.е. чисто логически мне нужно так
Код
RewriteCond http://m.домен.tk/$1 -f
RewriteCond http://m.домен.tk/$1 -d
RewriteRule ^(.*)$ http://m.домен.tk/$1 [L,R=302]
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
06.10.2012, 19:16 18
Serg046, Только Rules, Conds это для того чтобы он проверял есть ли файлы на мобильном сайте или нет.
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
06.10.2012, 19:28  [ТС] 19
Цитата Сообщение от fedin-ilja2010 Посмотреть сообщение
Conds это для того чтобы он проверял есть ли файлы на мобильном сайте или нет.
Это очевидно.
Вопрос в том как правильно проверить?
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
06.10.2012, 19:39 20
Serg046, Найдите мою тему в важных, там один пользователь шпаргалки оставлял, почитайте их.
0
06.10.2012, 19:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2012, 19:39
Помогаю со студенческими работами здесь

Редирект в htaccess
Помогите настроить редирект в файле htaccess. Имеется адрес типа "http://mysite.com/razdel", его...

Редирект в .htaccess
Здравствуйте. Необходимо сделать редирект с адресов вот такого плана site1.com/page.php?id=33 на...

Редирект на новый домен
как сделать редирект на новый домен? например чтобы страница domen1.ru/contact/ был редирект на...

.htaccess перенаправление на другой домен
Все просто. Есть домен: site1.ru Есть домен: site2.ru Нужно чтобы при заходе на site1.ru,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru