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

Веб-сайт с префиксом XXX работает (XXX.example.com), но не без него (ошибка 403)

У меня есть Redirect permanent в моем конфигурационном файле apache, поэтому я не знаю, когда ошибка 403 для example.com начало происходить.

# When attempting to fix possible permissions issues due to 403
<Directory "/var/www/example.com/public_html">
    Require all granted
</Directory>
#

<VirtualHost *:80>
    ServerName webserver1.example.com
    ServerAlias example.com www.example.com
    ServerAdmin admin@example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/log/error_80.log
    CustomLog /var/www/example.com/log/requests_80.log combined
    #Redirect permanent / https://www.example.com
</VirtualHost>

<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
        ServerName webserver1.example.com
    ServerAlias example.com www.example.com
    ServerAdmin admin@example.com
#   <Directory "/var/www/example.com/public_html">
#       Allow from all
#       Require all granted
#   </Directory>
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/log/error_443.log
    CustomLog /var/www/example.com/log/requests_443.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName webmail.example.com
    ServerAlias email.example.com
    Redirect permanent / https://webmail.example.com
</VirtualHost>
<VirtualHost *:443>
        ServerName webmail.example.com
        ServerAlias email.example.com
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
    DocumentRoot /usr/share/squirrelmail
</VirtualHost>

Практически все, но example.com работает в обоих VirtualHost фрагменты.

Я разделил журналы для портов 80 и 443, чтобы посмотреть, не появилось ли там что-нибудь.

Изменить: Фактический текст ошибки:

Access forbidden!

You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.

If you think this is a server error, please contact the webmaster.
Error 403
example.com
Apache/2.4.20 (Unix) 

Из error_80.log:

[DOW MM DD HH:MM:SS YYYY] [:error] [pid PID] [client 127.0.0.1:PORT script '/var/www/example.com/public_html/xmlrpc.php' not found or unable to stat

Решение: я не подумал проверить свой файл / etc / hosts и у меня был example.com в этом. В основном я проводил тесты на компьютере, который использовал, а затем отправлял на свой настоящий сервер.

Оказывается, у меня было example.com в моем файле / etc / hosts.

Вот мой файл / etc / hosts:

#
# /etc/hosts: static lookup table for host names
#

#      
127.0.0.1   localhost.localdomain   localhost
::1     localhost.localdomain   localhost
# The following line is what was causing the issues. If I had had www.example.com it too would have been having issues.
127.0.0.1   example.com localhost

# End of file