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

Как сделать подкаталог корневым документом веб-домена или локального хоста

У меня есть подкаталог abc в корне документа /var/www/html

Я хочу иметь возможность запускать любой файл any_file.html в подкаталоге, набрав в браузере:

localhost/any_file вместо того localhost/abc/any_file.html или my_domain.com/any_file вместо того my_domain.com/abc/any_file.html

Я пробовал писать в httpd.conf:

<Directory "/var/www/html/abc">
RewriteEngine On
RewriteBase /
RewriteRule %{REQUEST_FILENAME} %{REQUEST_FILENAME}\.html
</Directory>

Но не работает. Options FollowSymLinks активируется в <Directory> так что я считаю, что мне не нужно было бы писать это снова. Кто-нибудь знает, почему и как это решить? Спасибо.

Обновить: У меня есть другой подкаталог efg к которому мне нужно иметь доступ через localhost.

Изменить DocumentRoot из

/var/www/html

к

/var/www/html/abc

При объявлении Vhost для домена нужно добавить:

<VirtualHost *:80>
DocumentRoot /var/www/html/abc
     <Directory />
          *your options*
    </Directory>

</VirtualHost>

Теперь твой / будет /var/www/html/abc

Если структура вашего документа такая:

/
-abc
-edf

Теперь вы по умолчанию получите доступ к папке abc. Если вы также хотите получить доступ к папке edf, у вас есть два варианта:

  • Создайте еще один виртуальный хост для поддомена, у которого root-права документа - edf
  • Свяжите папку edf символом с abc

Создание символических ссылок довольно просто (команда ln). Чтобы создать еще один виртуальный хост, вы можете создать новый файл в своем sites-available/ папку или добавьте эти записи внизу своего sites-available/default

DocumentRoot / var / www / html / efg ServerName efg.mydomain.com

если вы создали новый файл, вам нужно запустить:

a2ensite filename

и перезапустите apache. Теперь, когда вы посещаете поддомен (не забудьте добавить его на свой DNS-сервер). Он будет использовать efg в качестве корневого каталога документов.

Вы можете изменить директиву

DocumentRoot /var/www/html

быть

DocumentRoot /var/www/html/abc

в соответствующем виртуальном хосте.

Другой вариант - использовать mod-rewrite для перезаписи каждого пути, начинающегося с /abc быть без этого.