Служить PHP-странице в веб-корне, но показывать содержимое в подкаталогах

У меня есть веб-сайт на сервере общего хостинга. Мой макет каталога выглядит следующим образом

/home
    /user
        /public_html
            /pics
                /family

В public_html есть файл index.php. Мне нужна помощь в написании правил.htaccess, которые

  1. Обслуживание файла index.php при запросе www.domain.org
  2. Принудительное возвращение пользователя к public_html при запросе www.domain.org/pics
  3. Разрешить пользователю просматривать содержимое каталога при запросе www.domain.org/pics/family

Я экспериментировал со многими комбинациями RewriteCond и RewriteRule, но я недостаточно хорошо понимаю документацию и примеры, чтобы понять, возможно ли то, что я хочу сделать.

Приложение веб-сервера - это некая версия Apache.

2 ответа

Решение

Я положил это в public_html/.htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} "/pics/" [OR]
RewriteCond %{REQUEST_URI} "/pics/family/"
RewriteRule (.*) $1 [L]

В public_html/pics/.htaccess ничего нет
Я положил это в public_html/pics/family/.htaccess

Options +Indexes

Я удалил index.html.

После этого все работало так, как я хотел, чтобы это работало. Я получил идею из этой документации по Drupal.

1) Вы можете получить это бесплатно, добавив DirectoryIndex index.php в вашем файле.htaccess, который находится в public_html.

2) Чтобы перенаправить запросы в /pics, вы можете использовать этот набор правил переписывания:

RewriteRule ^pics/?$ http://www.domain.org/ [R,L]

3) Вам нужно будет использовать с опциями:

<Directory "/home/user/public_html/pics/family">
    Options Indexes
</Directory>

Вам необходимо убедиться, что в вашем веб-сервере conf или virtualhost conf вы можете переопределить параметры в ваших файлах.htaccess. Что-то вроде AllowOverride All или же AllowOverride Indexes, Также обратите внимание, что с #2 люди по-прежнему смогут получать доступ к файлам в фотографиях, например, http://www.domain.org/pics/pic1.jpg, но будут перенаправлены при попытке просто получить доступ к каталогу.

Другие вопросы по тегам