Ошибка сервера Apache: запрошенный URL-адрес /ena/home/home.php не был найден на этом сервере

#apache #ssl #https #http-status-code-404

#apache #ssl #https #http-status-code-404

Вопрос:

Я запускаю сервер Apache через AWS: httpd-2.2.34-1.16.amzn1.x86_64

Что касается местоположения, корень моего сайта находится здесь: /var/www/html/ena

Сайт загружается из виртуального каталога с: /etc/httpd/conf/httpd.conf

 <VirtualHost *:80>
 DocumentRoot /var/www/html/ena
 ServerName enetapplications.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =enetapplications.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,NE,R=permanent]
</VirtualHost>
 

Сайт работал, пока я не добавил SSL через letsencrypt. В файле: /etc/httpd/conf.d/ssl.conf

 NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot /var/www/html/ena
    ServerName enetapplications.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/enetapplications.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/enetapplications.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/enetapplications.com/chain.pem
</VirtualHost>

 

Let’s Encrypt, похоже, загружался нормально, поскольку я вижу https в URL-адресе и что это безопасное соединение, однако каким-то образом при настройке я перепутал путь к веб-сайту (enetapplications.com ) — обратите внимание, что он всегда был в виртуальном каталоге

Пожалуйста, сообщите о любой другой информации, которую я могу добавить, чтобы сделать это более понятным, и заранее спасибо за помощь.

Ответ №1:

При просмотре журналов ошибок отмечается следующий журнал:

 [Sun Jan 10 04:57:09 2021] [error] [client 185.104.184.116] File does not exist:
 /var/www/html/ena/ena, referer: https://enetapplications.com/ena/home/home.php 
 

Это интересно тем, что веб-сайт находится /var/www/html/ena , а НЕ /var/www/html/ena/ena .

Чтобы исправить это, я настроил каталог для перемещения root /var/www/html-ena , скопировал все файлы в новый root и соответствующим образом изменил файлы конфигурации, например /etc/httpd/conf/httpd.conf

 <VirtualHost *:80>
 DocumentRoot /var/www/html-ena
 ServerName enetapplications.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =enetapplications.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,NE,R=permanent]
</VirtualHost>
 

Похоже, это сработало, хотя каким-то образом при загрузке Letsencrypt я запутал php, но это другая проблема, которую еще нужно исправить, но на данный момент SSL работает с настройкой структуры каталогов.