2009-08-04 4 views
1

Я хочу использовать .htaccess, чтобы предотвратить список каталогов.
У меня есть страницы в пределах /location/, но у меня нет индексного файла. Поэтому я хочу перенаправить на /location/about.php например.Предотвращение списка каталогов путем перенаправления?

Есть ли способ сделать это, не создавая index.html и перенаправляя запросы на это?

Спасибо за помощь!

ответ

9

Если вы просите файл вместо «index.html» см «DirectoryIndex», чтобы сказать ему, что файлы использовать вместо «index.html»:

DirectoryIndex about.php index.html 
Options –Indexes 

... если вы пытаетесь перенаправлять все каталоги на одной странице, то я бы схитрить и сделать следующее, что будет в основном делать то, что вы просите:

Options +Indexes 
IndexOptions +SuppressHTMLPreamble 
IndexIgnore * 
HeaderName /includes/header.html 
ReadmeName /includes/readme.html 

... и множество /includes/header.html с любым сообщением, которое вы хотите (или содержащим мета-перенаправление), nd /includes/readme.html быть пустым.

+0

Я использовал первый пример. Однако, включая опции -Indexes, произошла ошибка внутреннего сервера. Поэтому я просто использовал DirectoryIndex для замены по умолчанию .html, а затем отразил это в каждой директории. Благодаря! – 2009-08-07 14:08:43

0

Вот прямая ссылка на то, что вам нужно:

http://www.webweaver.nu/html-tips/web-redirection.shtml

Если вам нужно что-то более продвинутое для обработки параметров или нужно переназначить старые URL-адреса на новые, вы можете использовать URL переписывания:

http://corz.org/serv/tricks/htaccess2.php

Предотвратить список каталогов (или возвращает пустой список каталогов):

http://www.besthostratings.com/articles/prevent-directory-listing.html

+0

Я не хочу перенаправлять страницу, я хочу перенаправить каталог на страницу. Однако, если я перенаправляю весь каталог, каждая страница в этом каталоге укажет на перенаправленную страницу. Или я верю. – 2009-08-04 19:01:10

0

Изменение DirectoryIndex и Options работает, но с использованием mod_alias означает, что вам не нужно его менять во вложенных каталогах.

Redirect 303 /location/ /location/about.php 
5

Я знаю, что это старая нить, но я просто должен был сделать что-то подобное и сделал это следующим образом:

Options -Indexes 
ErrorDocument 403 /location/about.php 

В основном Options -Indexes предотвращающую списка каталогов и ErrorDocument 403 переписывает сообщение по умолчанию 403.

+0

Имейте в виду, что это может вызвать некоторые непредвиденные побочные эффекты - 403 ответа не будут индексироваться многими поисковыми системами (большинство?) – Joe

+0

И 403 «запрещен доступ» - вы хотели, возможно, 404? – ivanivan

Смежные вопросы