首页 > 解决方案 > 发现原因的 Apache Webserver 错误 500,但没有解决方案

问题描述

(所有这些都是在有虚拟机的环境中进行的,所以不用担心信息泄露。)

所以,我目前正在做一个项目,我有一个包含 3 个组的 Windows AD DC(每个组只有一个人,但项目需要)、一个客户端电脑和一个 ubuntu 20.04 Apache 网络服务器。

我有 2 个网站,1 个名为 admin.domain.com,另一个名为 office.domain.com。管理组只允许访问 admin.domain.com 网站,而办公室有自己的。

很久以后,我终于成功地让域名工作了,但是管理页面(这是我开始使用 .htaccess 和 .htpasswd 文件的唯一一个)得到错误 500 internal server error,只要我AllowOverwrite Authconfig输入<Directory /var/www/>conf 部分的 Apache2.conf 文件。

据我所知,错误 500 仅表示服务器出现问题,并且没有适当的错误消息来传递该信息,因此错误 500 是“最准确的”。

由于该错误仅在我将 AuthConfig 而不是 none 放入 conf 文件中时发生,所以我有一个很大的想法,即 .htaccess 文件不知何故有错误,或者我认为是 Apache 不能出于某种原因找到我的 .htaccess 文件。

我的 .htaccess 文件位于管理网站文件夹中,包含:

AuthUserFile /etc/apache2/htpasswd
AuthName "Please Enter Password"
AuthType Basic
Require valid-user

是否有“更好”的方法来确保 Windows AD 用户无法在没有 .htaccess 解决方案的情况下访问 ubuntu 上的网站,或者是否有“解释”文件所在位置的 apache 的解决方案?

/etc/apache2/enabled-sites/admin.conf 中的 admin.conf:

<VirtualHost *:80>
    ServerName weblocal.com
    ServerAlias admin.weblocal.com
    ServerAdmin LL@Web.local
    DocumentRoot /var/www/html/admin/

    <directory /var/www/html/admin/>
            AuthType Basic
            AuthName "Restricted Area!"
            AuthBasicProvider file
            AuthUserFile /etc/apache2/htpasswd
            Require user LL@Web.local
    </directory>

    ErrorLog ${APACHE_LOG_DIR}/admin-error.log
    CustomLog ${APACHE_LOG_DIR}/admin-access.log combined
</VirtualHost>

这是 apache2.conf 的一部分,其中包含 .htaccess 部分:

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

AccessFileName .htaccess

<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>

标签: apache.htaccessubuntu-20.04

解决方案


推荐阅读