(Apache) Запрещено 403 при доступе к поддомену - PullRequest
0 голосов
/ 22 октября 2018

Я хочу настроить поддомен "shop" на моем сервере Apache 2.2 в Windows / XAMPP, и он перенаправляет на "index.html", если я ввожу "shop.localhost" в качестве URL, но как только я пытаюсь подключиться через мойдомен "sv443.net" он перенаправляет в корень моего документа ("/index.html" вместо "/shop/index.html").Подключение к "sv443.net/shop/" работает нормально, хотя и даже перенаправляет на "index.html".


Я использую Cloudflare для обработки содержимого DNS и добавил эти записи (я обрезал часть IP-адреса):

enter image description here




Это мой httpd-vhosts.conf:

NameVirtualHost localhost:80

<VirtualHost localhost:80>
   ServerName localhost
   ServerAdmin sven.fehler@web.de

   DocumentRoot "c:/users/sv443/desktop/mamp htdocs"

   <Directory "c:/users/sv443/desktop/mamp htdocs">
     Options Indexes MultiViews FollowSymLinks
     AllowOverride None

     Order allow,deny
     Allow from all
     Require all granted

   </Directory>
</VirtualHost>

<VirtualHost shop.localhost:80>
   ServerName shop.localhost
   ServerAdmin sven.fehler@web.de

   DocumentRoot "c:/users/sv443/desktop/mamp htdocs/shop"

   <Directory "c:/users/sv443/desktop/mamp htdocs/shop">
     Options Indexes MultiViews FollowSymLinks
     AllowOverride None

     Order allow,deny
     Allow from all

     Require all granted
   </Directory>
</VirtualHost>




И это мой hosts.dat:

(only comments)

2.205.169.73 sv443.net

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost


127.0.0.1   localhost   shop.localhost




Также я добавил этот файл .htaccessв каталог магазина, чтобы перенаправить на index.html, если обнаружен 403 или 404 - удаление этого файла не решает мою проблему:

ErrorDocument 403 /shop/index.html
ErrorDocument 404 /shop/index.html




Если кто-то пытается подключиться, я получаю это сообщение об ошибке в Apache error.log:

AH01630: client denied by server configuration: C:/Users/Sv443/Desktop/MAMP htdocs/shop/.html




Спасибо за любую помощь!

1 Ответ

0 голосов
/ 22 октября 2018

Если вы можете получить контент, явно указав "/index.html", но не с помощью "/", вы должны добавить DirectoryIndex index.html в вашу конфигурацию после загрузки mod_dir.Это определит файл по умолчанию для поиска, когда он не указан.

Для вашего VirtualHost:

<VirtualHost *:80>
    ServerName localhost
    ServerAlias www.example.com
    ServerAlias example.com

    LogLevel debug
    CustomLog "logs/example_access_log" combined
    ErrorLog  "logs/example_error_log"

    [... REST OF CONFIGURATION ...]
</VirtualHost>

<VirtualHost *:80>
    ServerName shop.localhost
    ServerAlias shop.example.com

    LogLevel debug
    CustomLog "logs/shop_access_log" combined
    ErrorLog  "logs/shop_error_log"

    [... REST OF CONFIGURATION ...]
</VirtualHost>

Apache решает, какой VirtualHost использовать для запроса, основываясь на домене в запросе,Если он не находит соответствия, он использует первый в файле (здесь localhost).Поэтому вы не указываете на свой субдомен «магазина», если только вы не укажете его в VirtualHost для него через ServerAlias ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...