[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Apache, перенаправление всех запросов
trikadin
Собственно, вопрос: как сделать перенаправление всех запросов к серверу на одну страницу? Уже понял, что это имеет отношение к mod_rewrite, но ещё не совсем понял, как его использовать. + нужно, чтобы страница знала, откуда было сделано перенаправление (например, подстановка в query-string). Серверный язык - php. Как это возможно реализовать?



Спустя 9 часов, 21 минута, 47 секунд (26.12.2011 - 10:26) kent666 написал(а):
Ты может не правильно задаешь вопрос!
К примеру сайт www.site.ru
www.site.ru/home/edit
www.site.ru/blog/first
www.site.ru/catalogue/
Все эти запросы будут обращаться к одному файлу, а именно к index.php!
Если у тебя включен мод mod_rewrite то для запроса
www.site.ru/home/edit
home - это значение первой переменной GET
edit - это значение второй переменной GET
А
Цитата
чтобы страница знала, откуда было сделано перенаправление

Сервер смотрит какие были переданы значения переменных GET и делает соответствующие обработки

Спустя 17 часов, 24 минуты, 21 секунда (27.12.2011 - 03:50) trikadin написал(а):
kent666, честно говоря, не совсем понял. Я уже нашёл решение проблемы, но хотелось бы понять поподробнее, о чём вы говорите. Как получить адрес в виде гет-массива? Можно пример кода?

Спустя 6 часов, 22 минуты, 24 секунды (27.12.2011 - 10:13) kent666 написал(а):
trikadin думаю тебе будет не лишним почитать вот это http://irbis-team.com
про ЧПУ или мод mod_rewrite написано вот тут http://irbis-team.com/15/4/11
smile.gif

Спустя 7 часов, 29 минут, 59 секунд (27.12.2011 - 17:43) trikadin написал(а):
kent666, за сайт большое спасибо, почитаю внимательно.

Про перенаправление уже нашёл, теперь у меня новый вопрос (хе-хе), про который я просто не знаю, в какую сторону идти.

Можно ли не перенаправлять, а возвращать страницу? То есть явного перенаправления, видного браузеру и клиенту, не происходит, но страница отдаётся другая. Пример: в корне сайта лежит файл index.php, а клиент запрашивает, например, /other/url.php. Но вместо /other/url.php ему отдаётся index.php из корня. Но явного перенаправления не происходит.

Пока в голову приходит лишь использование ошибки 404, но от этого тянет говнокодом)

Спустя 11 минут, 58 секунд (27.12.2011 - 17:55) kent666 написал(а):
trikadin тебе надо понять что тебе надо!
читай http://irbis-team.com
если ты не хочешь что бы пользователь открывал другие файлы кроме ndex.php, то в этих файлах надо при загрузке поставить редирект!

Ты в файле /other/url.php делаешь редирект на index.php

Спустя 22 минуты, 1 секунда (27.12.2011 - 18:17) trikadin написал(а):
Цитата
trikadin тебе надо понять что тебе надо!

Да уже понял вроде бы)

Мне нужен не редирект, мне нужно возвращать другую страницу. При этом, чтобы url-адрес оставался тем же.

Спустя 16 часов, 43 минуты, 9 секунд (28.12.2011 - 11:00) kent666 написал(а):
Цитата
нужно возвращать другую страницу. При этом, чтобы url-адрес оставался тем же

Это возможно при использовании массива POST! (переменные не передаются в адресной строке)
Или AJAX но тут асинхронная передача! Т.е. страница остается та же и сама подгружает необходимые данные с сервера не обновляясь!

Спустя 7 дней, 9 часов, 59 минут, 14 секунд (5.01.2012 - 20:59) trikadin написал(а):
kent666, позволю себе заметить, что само по себе использования AJAX-а никак на адресную строку не влияет. Влияет использования History API, но тут возникает проблема загрузки нужной страницы с сервера, с которой я и борюсь. Т.е. с помощью js можно поставить любой url в адресную строку, но если попытаться открыть его как обычный путь (скопировать в адресную строку и нажать enter, например), может быть ошибка. Поэтому я хочу перехватывать запрос и отдавать одну и ту же страницу на каждый.

Проблема решена, тема закрыта, если что..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.