Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: htaccess и передача url в php
Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012 Откуда: г.Мытищи, МО
Помог: 0 раз(а)
Всем привет.
У меня проблема, синтаксис htaccess вообще не понимаю.
Вообщем задача такова: есть сайт http://site.ru/.
Нужно сделать следующее: Человек заходит на сайт http://site.ru/* и сразу перенаправляется на файл check.php?url=урл, который был набран. Из файла check.php он попадает уже на запрашиваемую страницу.
При этом, при последующем путешествии по сайту редиректа на check.php уже не должно-быть.
Как я понимаю, проверять нада по HTTP_REFERER, т.е. RewriteCond %{HTTP_REFERER} !^http://(www.)?site/.*$ [NC]
А вот что и как писать в RewriteRule я не понимаю
DeepVarvar
Отправлено: 04 Мая, 2012 - 01:58:17
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Мне кажется что вы выбрали не верное решение задачи.
Можно конечно и через хтацесс накрутить, но я бы на вашем месте просто инклюдил код check.php прямо в индексный файл и ставил бы флаг в сессию после того как отчекал, чтобы больше туда логика не ходила.
Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012 Откуда: г.Мытищи, МО
Помог: 0 раз(а)
Инклуд вообще никак не годиться для этих целей.
Допустим у нас есть форум, есть галерея и есть что-то не связанное между собой. В каждый этот движок встраивать твой инклуд = бред.
Необходимо перехватить любой путь и сделать редирект на файл check.php, а это может сделать только htaccess
Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012 Откуда: г.Мытищи, МО
Помог: 0 раз(а)
Читал я кучу статей, но не понимаю как тут что работает, поэтому требуется готовое решение.
OrmaJever
Отправлено: 05 Мая, 2012 - 01:27:13
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Помоему реферер тут не поможет. Как вариант любой запрос перенаправлять на check.php?url=урл, а там уже решать первый это раз или нет.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Dragon_Knight
Отправлено: 05 Мая, 2012 - 01:57:20
Гость
Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012 Откуда: г.Мытищи, МО
Помог: 0 раз(а)
OrmaJever, я тоже думал об этом, и в файле check.php использовать сессии для проверки, НО как я понимаю это заметно увеличить нагрузку, на Apache при большой посещаемости. (это-же будет через файл check.php идти и все картинки, файлы, стили).
Так что этот вариант я тоже отверг.
PS> к тому-же как Вы это себе представляете?
1) Обращаемся на http://site.ru/forum/index.php.
2) htaccess редиректит на http://site.ru/check.php?path=/forum/index.php.
3) check.php хедером перенаправляет на http://site.ru/forum/index.php.
4) goto 2.
Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012 Откуда: Россия, Тверь
Помог: 5 раз(а)
Dragon_Knight пишет:
Всем привет.
У меня проблема, синтаксис htaccess вообще не понимаю.
Вообщем задача такова: есть сайт http://site.ru/.
Нужно сделать следующее: Человек заходит на сайт http://site.ru/* и сразу перенаправляется на файл check.php?url=урл, который был набран. Из файла check.php он попадает уже на запрашиваемую страницу.
При этом, при последующем путешествии по сайту редиректа на check.php уже не должно-быть.
Как я понимаю, проверять нада по HTTP_REFERER, т.е. RewriteCond %{HTTP_REFERER} !^http://(www.)?site/.*$ [NC]
А вот что и как писать в RewriteRule я не понимаю
Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012 Откуда: г.Мытищи, МО
Помог: 0 раз(а)
Muxa, ровно тоже самое. header редиректит на нужную страницу, но htaccess перехватывает его и обратно направляет на check.php. Бесконечный цикл получается.
Если тока использовать куки в htaccess с TTL скажем 30 секунд, но я не нашёл нормального примера как управлять куками в htaccess.
OrmaJever
Отправлено: 05 Мая, 2012 - 15:23:24
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Dragon_Knight идея глупая.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Muxa
Отправлено: 05 Мая, 2012 - 15:23:36
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012 Откуда: Россия, Тверь
Помог: 5 раз(а)
Цитата:
Dragon_Knight
почему тоже самое? по кукам смотришь, если они уже установлены - то редирект не делаешь, если они еще не установлены устанавливаешь и делаешь редирект (Добавление)
OrmaJever пишет:
Dragon_Knight идея глупая.
я конечно здесь новичок, но форум должен помогать всем, независимо от глупости или умности идеи.. Это ИМХО, возможно я и не прав конечно
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.