Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Коллективный редирект
 
 автор: Владимир55   (16.10.2009 в 20:08)   письмо автору
 
 

Если какая-то страница сайта более не нужна, то я делаю на ней редирект на главную страницу, что бы посетители не упирались в 404:
<?php
header
("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.domain.ru/index.htm");
exit();
?>


Это удобно, если удаляется одна или несколько страниц.

Но вот сейчас возникла необходимость удаления всех страниц одной папки. Можно ли сделать "коллективный" редирект, что бы переадресовать на главную сразу все страницы, которые были в этой папке?

  Ответить  
 
 автор: elenaki   (16.10.2009 в 20:50)   письмо автору
 
   для: Владимир55   (16.10.2009 в 20:08)
 

можно в редакторе (если он нормальный, а не Фронтпейдж) вставить нужную строку во все файлы в выбранной папке.

  Ответить  
 
 автор: Trianon   (16.10.2009 в 20:53)   письмо автору
 
   для: elenaki   (16.10.2009 в 20:50)
 

почему-то кажется, что мод-рерайтом в .htaccess'е этого каталога будет сильно проще.

  Ответить  
 
 автор: Владимир55   (16.10.2009 в 22:45)   письмо автору
 
   для: Trianon   (16.10.2009 в 20:53)
 

Неизмеримо проще! Файлов удаляется много (десятки тысяч), и хочется освободиться от них вообще, а не только свести их размер к минимуму.

Как это через .htaccess сделать?

  Ответить  
 
 автор: Trianon   (16.10.2009 в 22:56)   письмо автору
 
   для: Владимир55   (16.10.2009 в 22:45)
 

# /dir/.htaccess -- конфигурационный файл каталога /dir
RewriteEngine On 
RewriteBase /dir 
RewriteRule ^.+$ / [L] 

как-то так, вероятно.

  Ответить  
 
 автор: Киналь   (17.10.2009 в 21:36)   письмо автору
 
   для: Trianon   (16.10.2009 в 22:56)
 

Или задать в качестве обработчика 404-й ошибки главную страницу.

  Ответить  
 
 автор: Владимир55   (18.10.2009 в 00:32)   письмо автору
 
   для: Киналь   (17.10.2009 в 21:36)
 

Оригинальная идея!

Это как?

  Ответить  
 
 автор: Рома   (18.10.2009 в 00:53)   письмо автору
 
   для: Владимир55   (18.10.2009 в 00:32)
 

ErrorDocument 404 http://www.softtime.ru/forum/404.html

  Ответить  
 
 автор: DJ Paltus   (18.10.2009 в 02:29)   письмо автору
 
   для: Владимир55   (18.10.2009 в 00:32)
 

Предлагаю не портить обработку 404-й ошибки, а закрывать директорию редиректом.
В родительской директории, в которой находится сабж, делаем .htaccess:

RedirectPermanent /the_dir http://www.mysite.ru 

  Ответить  
 
 автор: Владимир55   (26.11.2009 в 19:02)   письмо автору
 
   для: DJ Paltus   (18.10.2009 в 02:29)
 

Что не заработало ничего из этого...

Ситуация такая: директория второго уровня освобождена от файлов, и в нее помещен файл .htaccess

Если использовать вариант Trianon (16.10.2009 в 22:56), то получается забавная ситуация: обращение к любой странице, которая была в опустошенном каталоге, вызывает главную страницу сайта, что и требовалось. Но! Сайт при этом не работает, ибо клик по любому элементу меню вновь приводит на главную страницу, хотя в адресной строке фигурирует вызванная!

А вариант DJ Paltus (18.10.2009 в 02:29) приводит к тому, что сайт бьется в конвульсиях, ибо в левой нижней части экрана постоянно присутствует дрожащее сообщение "Ожидается ответ".

Что же здесь не так?

  Ответить  
 
 автор: Trianon   (26.11.2009 в 19:06)   письмо автору
 
   для: Владимир55   (26.11.2009 в 19:02)
 

>Ситуация такая: директория второго уровня освобождена от файлов, и в нее помещен файл .htaccess
>Если использовать вариант Trianon (16.10.2009 в 22:56), то получается забавная ситуация: обращение к любой странице, которая была в опустошенном каталоге, вызывает главную страницу сайта, что и требовалось. Но! Сайт при этом не работает, ибо клик по любому элементу меню вновь приводит на главную страницу, хотя в адресной строке фигурирует вызванная!

Здрасти. Вы ж этого и хотели?

Хотя.. понял. Так Вам нужен переход не в корень, а на страницу, которая попросит header('Location: /');exit();
Ну или клиентский редирект средствами mod_rewrite (может кто подскажет строчку, т.к. мне лень)

  Ответить  
 
 автор: Владимир55   (26.11.2009 в 19:10)   письмо автору
 
   для: Trianon   (26.11.2009 в 19:06)
 

Добрый вечер!

Я полагал, что посетитель, пришедший по адресу файла из опустошенной директории, перейдет на главную страницу, и далее будет путешествовать по сайту самым обычным образом.

А получилось, что с главной он никуда уйти не может!

  Ответить  
 
 автор: Trianon   (26.11.2009 в 19:14)   письмо автору
 
   для: Владимир55   (26.11.2009 в 19:10)
 

[R]

  Ответить  
 
 автор: Владимир55   (26.11.2009 в 19:16)   письмо автору
 
   для: Trianon   (26.11.2009 в 19:14)
 

Меня что удивляет: в сети много статей о редиректе, и повсюду есть пример редиректа директории на страницу
Redirect 301 / http://www.you.com/new.htm

А у меня и это не работает.

Может, в настройках сервера что-то не так?

(в файле httpd.conf задано AllowOverride All )

  Ответить  
 
 автор: Владимир55   (26.11.2009 в 20:50)   письмо автору
 
   для: Владимир55   (26.11.2009 в 19:16)
 

Пустая поддиректория с именем sh, находящаяся в папке с именем 61, удалена. А в корневом файле .htaccess сделана такая запись:

RemoveHandler .html .htm 
AddType application/x-httpd-php .php .htm .html 
Redirect 301 /61/sh/99999.htm http://site.ru/
Options –Indexes


Теперь при обращении к файлу http://site.ru/61/sh/99999.htm происходит переход на главную страницу.

А как сделать, что бы при обращении к ЛЮБОМУ файлу в директории /61/sh/ (типа http://site.ru/61/sh/******.htm ) происходил переход на главную страницу?

(Вот так
Redirect 301 /61/sh/ http://site.ru/ 
и так
Redirect 301 /61/sh http://site.ru/ 
не работает).

  Ответить  
 
 автор: Trianon   (26.11.2009 в 21:25)   письмо автору
 
   для: Владимир55   (26.11.2009 в 20:50)
 

И всё же.
Если в моем варианте (16.10.2009 в 22:56) поменять [L] на [R]
что происходит?

  Ответить  
 
 автор: Владимир55   (26.11.2009 в 22:33)   письмо автору
 
   для: Trianon   (26.11.2009 в 21:25)
 

Шик модерн! Спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования