Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Как оставить старый адрес после редиректа?
Новая тема
Ответить
цитата
16/04/08 в 18:46
Klirik
На сайте лежит .htacces с кодом
RewriteEngine On
...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ link.php?=$1
т.е. не существующие адреса передаются скрипту link.php и он уже сам редиректит header-ом.
Вопрос: можно сделать так, чтобы после редиректа из скрипта в адресной строке браузера оставался тот самый не существующий адрес, который обрабатывается htaccess-om?
цитата
16/04/08 в 19:30
Corex
Если изменить поведение скрипта link.php, чтобы он не редиректил, а выводил контент (напрямую или, может, через ajax), то в адресной строке, соответственно, будет оставаться запрошенный УРЛ.
Менее предпочтительно - использовать фреймы и делать редирект внутри основного фрейма.
А так в чистом виде не получится, насколько я знаю, т.к. браузер получает от сервера новый УРЛ, переходит по нему и уже сам меняет данные в адресной строке.
цитата
16/04/08 в 20:57
Klirik
Вариант с фреймами, как запасной, я уже реализовал, но использовать не хотелось бы из-за проблем с индексацией.
цитата
16/04/08 в 21:20
wMaster
это проще реализуется через связку nginx + apache
http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/lang/ru/
цитата
16/04/08 в 21:54
ivango
че то вы гоните...
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^(.*)$ link.php?=$1 [T=application/x-httpd-php]
вот так должно работать,
но в link.php желательно не редиректить всё же, а инклюдить.
цитата
16/04/08 в 22:23
Klirik
Ivango, респект - заработало! )
И правда, только с инклюдом, но если в заинклюженых страницах стили и рисунки с неполными адресами, то они просто не показываются (
Похоже не судьба мне сделать )
цитата
17/04/08 в 04:32
idk2045
Еще вариант должен работать, но тока если в апаче включен mod_proxy:
RewriteEngine On
...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ link.php?=$1 [P]
цитата
17/04/08 в 07:08
Corex
ivango писал:
че то вы гоните...
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^(.*)$ link.php?=$1 [T=application/x-httpd-php]
вот так должно работать,
но в link.php желательно не редиректить всё же, а инклюдить.
По сути ты написал то же самое. T=application/x-httpd-php всего лишь ставит хендлер запроса, который по-дефолту для link.php и так должен быть x-httpd-php.
А инклюд - это как раз изменение поведения link.php, когда он сам выводит контент, а не редиректит клиента. Так что это об одном и том же, только разными словами.
Klirik:
Вместо инклюда можно сделать контент-проксирование, например, на основе _xttp://sourceforge.net/projects/poxy/, но при большом кол-ве запросов может притормаживать.
цитата
17/04/08 в 16:26
Klirik
Спасибо, всех оценил.
Новая тема
Ответить
Эта страница в полной версии