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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
Dragon_Knight
Отправлено: 04 Мая, 2012 - 01:50:25
Post Id



Гость


Покинул форум
Сообщений всего: 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 я не понимаю
 
 Top
DeepVarvar Супермодератор
Отправлено: 04 Мая, 2012 - 01:58:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мне кажется что вы выбрали не верное решение задачи.
Можно конечно и через хтацесс накрутить, но я бы на вашем месте просто инклюдил код check.php прямо в индексный файл и ставил бы флаг в сессию после того как отчекал, чтобы больше туда логика не ходила.
 
 Top
Dragon_Knight
Отправлено: 04 Мая, 2012 - 02:02:03
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




Спасибо за ответ.
Вмешиваться в код не хотелось-бы...

Если говорить проще, то нужно сделать 'интро' которое будет отображаться при первом заходе на сайт.

(Отредактировано автором: 04 Мая, 2012 - 02:03:07)

 
 Top
DeepVarvar Супермодератор
Отправлено: 04 Мая, 2012 - 02:07:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Я бы всеравно сделал через инклюду - так удобнее управлять окружением, да и реферер спокойно доступен в пхп тоже.
 
 Top
Dragon_Knight
Отправлено: 04 Мая, 2012 - 02:28:47
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




Инклуд вообще никак не годиться для этих целей.
Допустим у нас есть форум, есть галерея и есть что-то не связанное между собой. В каждый этот движок встраивать твой инклуд = бред.

Необходимо перехватить любой путь и сделать редирект на файл check.php, а это может сделать только htaccess

PS> Я дошёл до такого файла:
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. RewriteCond %{HTTP_REFERER} !^http://(www.)?second/.*$ [NC]
  3. RewriteRule ^(.*)$ check.php?url=$1 [L,QSA,NC]

Но что-то тут нетак, получается множество перенаправлений, и ссылка типа check.php?url=check.php?url=check.php.....

(Отредактировано автором: 04 Мая, 2012 - 04:06:08)

 
 Top
Dragon_Knight
Отправлено: 04 Мая, 2012 - 16:06:31
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




Другие манипуляции над фалом ни к чему хорошему не привели =(
 
 Top
Dragon_Knight
Отправлено: 05 Мая, 2012 - 00:01:37
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




Никто не знает в чём моя ошибка?
 
 Top
varafat
Отправлено: 05 Мая, 2012 - 00:45:26
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




 
 Top
Dragon_Knight
Отправлено: 05 Мая, 2012 - 00:57:17
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




Читал я кучу статей, но не понимаю как тут что работает, поэтому требуется готовое решение.
 
 Top
OrmaJever Модератор
Отправлено: 05 Мая, 2012 - 01:27:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Помоему реферер тут не поможет. Как вариант любой запрос перенаправлять на check.php?url=урл, а там уже решать первый это раз или нет.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Dragon_Knight
Отправлено: 05 Мая, 2012 - 01:57:20
Post Id



Гость


Покинул форум
Сообщений всего: 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.

(Отредактировано автором: 05 Мая, 2012 - 04:33:10)

 
 Top
Muxa
Отправлено: 05 Мая, 2012 - 13:44:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 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 я не понимаю

а если через кукис допустим?
PHP:
скопировать код в буфер обмена
  1.  
  2. setcookie('name','value');
  3. if(!isset($_COOKIE['name'])
  4. {
  5.         header("Location:  check.php?url=урл");
  6. }
  7.  
 
 Top
Dragon_Knight
Отправлено: 05 Мая, 2012 - 15:20:26
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




Muxa, ровно тоже самое. header редиректит на нужную страницу, но htaccess перехватывает его и обратно направляет на check.php. Бесконечный цикл получается.

Если тока использовать куки в htaccess с TTL скажем 30 секунд, но я не нашёл нормального примера как управлять куками в htaccess.
 
 Top
OrmaJever Модератор
Отправлено: 05 Мая, 2012 - 15:23:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Dragon_Knight идея глупая.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Muxa
Отправлено: 05 Мая, 2012 - 15:23:36
Post Id



Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012  
Откуда: Россия, Тверь


Помог: 5 раз(а)




Цитата:
Dragon_Knight
почему тоже самое? по кукам смотришь, если они уже установлены - то редирект не делаешь, если они еще не установлены устанавливаешь и делаешь редирект
(Добавление)
OrmaJever пишет:
Dragon_Knight идея глупая.

я конечно здесь новичок, но форум должен помогать всем, независимо от глупости или умности идеи.. Это ИМХО, возможно я и не прав конечно Растерялся
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB