Я получаю запрет доступа 403 при попытке открыть страницу под vhost, где корень документа сидит на другом диске, чем там, где сидит apache. Я установил с помощью выпуска apachefriends. Это мой httpd-vhosts.conf файл:
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
ServerName foo.localhost
DocumentRoot "C:/xampp/htdocs/foo/public"
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerName bar.localhost
DocumentRoot "F:/bar/public"
</VirtualHost>
При открытии bar.localhost в моем браузере Apache предоставляет мне 403 Access Forbidden. Я пробовал устанавливать множество разных прав доступа, даже полные права для всех, но ничего, что я пытался, помогло.
Изменить: Спасибо! Для дальнейшего использования добавьте индексы опций 'для отображения индексов каталога.
Вам не нужно
Options Indexes FollowSymLinks MultiViews Includes ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
единственное, что вам нужно...
Require all granted
... внутри раздела каталога.
См. страницу обновления Apache 2.4:
Где-то вам нужно сообщить Apache, что людям разрешено видеть содержимое этого каталога.
<Directory "F:/bar/public">
Order Allow,Deny
Allow from All
# Any other directory-specific stuff
</Directory>
Для Apache 2.4.2: я получал 403: Запрещено непрерывно, когда я пытался получить доступ к WAMP на рабочем столе Windows 7 с моего iPhone на WiFi. На одном blog я нашел решение - добавьте Требовать все предоставленные после Разрешить все в <Directory> раздел. Так вот как мой <Directory> раздел выглядит как внутри <VirtualHost>
<Directory "C:/wamp/www">
Options Indexes FollowSymLinks MultiViews Includes ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
</Directory>
Я исправил его с удалением кода ниже
C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf файл
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
И добавил
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:/wamp/www"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>
И он работал как шарм