首页 > 解决方案 > Apache 服务器错误:在此服务器上找不到请求的 URL /ena/home/home.php

问题描述

我正在通过 AWS 运行 Apache 服务器: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>

网站一直在工作,直到我通过letsencrypt添加了SSL。在文件中:/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 似乎加载得很好,因为我可以在 url 中看到 https 并且它是一个安全连接,但是在设置时不知何故我弄乱了网站 (enetapplications.com) 的路径 - 请注意它始终位于虚拟目录中

请告知我可以添加的任何其他信息以使这一点更清楚,并提前感谢您的帮助。

标签: apachesslhttpshttp-status-code-404

解决方案


查看错误日志时,会记录以下日志:

[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

为了纠正这个问题,我调整了将根目录移动到的目录/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>

这似乎可行,尽管在加载 Letsencrypt 时不知何故我弄乱了 php,但这是一个仍然需要修复的不同问题,但目前 SSL 正在调整目录结构。


推荐阅读