Назад | Перейти на главную страницу

Обслуживание index.html из подкаталога

В моем корне документа у меня есть каталоги: home и foobar, оба с собственными файлами index.html.

Как я могу настроить его так, чтобы, когда кто-то посещал мой сайт по адресу example.com, они видят содержимое на home/index.html?

Я пробовал использовать index.php с перенаправлением в корень документа, а также .htaccess перенаправить, но оба они меняют URL-адрес в браузере на example.com/home/, чего я бы в идеале избегал.

Вот два решения вашей проблемы.

1. Использование виртуальных хостов

Вероятно, у вас есть VirtualHost, который указывает на ваш сайт. Отредактируйте это так:

<VirtualHost *:80>
    DocumentRoot /path/to/your/directory/home # add /home at the end
    ServerName example.com
    <Directory /path/to/your/directory>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Тогда не забудьте перезапустить apache2 (или httpd)

2. Использование .htaccess

Добавьте это в свой .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/home
RewriteRule ^(.*)$ home/$1

Обратите внимание, что /foobar будет совершенно невозможно достичь кроме include от твоего /home каталог.

А как насчет простейшего решения: создания простого файла PHP, включающего документ?

<?php
   include("html/index.html");
?>

Почему бы вам просто не переместить содержимое home на один каталог вверх?