Я только что установил сервер Apache на Ubuntu, все прошло хорошо, и я могу получить доступ к стартовой странице. Однако я хочу создать еще одну страницу, которая находится в /var/www/test. Я хочу иметь возможность получить к ней доступ по адресуhttp://xxx.xxx.xxx.xxx/тест. Я создал каталог, вставил html-файл и изменил конфигурацию следующим образом:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/test>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Но, к сожалению, при попытке доступа к этой странице я получаю сообщение об ошибке: Not Found. Запрошенный URL-адрес не найден на этом сервере.
Сервер Apache/2.4.29 (Ubuntu)
Что я здесь делаю не так?
решение1
Соответствие между пространством URL и файлами на диске регулируется Apache.DocumentRootдиректива. Если у вас в основном или <VirtualHost>
конфигурационном файле есть строка типа:
DocumentRoot /var/www/html
(вероятно, у вас это установлено /etc/apache2/sites-enabled/000-default.conf
), то всякий раз, когда вы запрашиваете у сервера http://example.com/path/to/file.html
, вы получаете содержимое файла /var/www/html/path/to/file.html
.
index.html
В вашем случае вы (вероятно) поместили файл с именем /var/www/test
, но сервер ищет /var/www/html/test/index.html
.
TheКаталограздел, который вы добавили, определяет только разрешения и другие параметры для /var/www/test
, но не включает его в путь поиска сервера. Кроме того, параметры каталога наследуются, поэтому каталог /var/www/test
наследует параметры /var/www
(нет необходимости указывать те же параметры снова).
решение2
Во-первых, вам не нужно создавать новый <Directory>
блок для каждого каталога на вашем сайте. Во-вторых, если вы пытаетесь получить доступ к новому файлу, не указывая его имя, убедитесь, что это индексный файл. Например: вы создали файл /var/www/test/index.html
, у вас есть DirectoryIndex index.html
директива (больше примеров и информации о ее использовании можно найти вздесь), а затем вы пытаетесь получить доступ через свой браузер через http://localhost/test
или http://localhost/test/index.html
(я предполагаю, что вы настроили DocumentRoot
директиву, указывающую на /var/www
каталог.