apache - 发现原因的 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>
解决方案
推荐阅读
- javascript - JavaScript 中是否存在数组/列表?
- flutter - 图像小部件:高度与父级不匹配
- vim - 如何替换gvim中所有不以破折号开头的单词?
- python - 在 python 中读取二进制文件并绘图
- javascript - React - 默认步骤的输入范围作为值数组
- python - 为什么 TfidVectorizer.fit_transform() 会更改我的文本数据的样本和标签数量?
- python - 从python字符串数组中删除子字符串
- jenkins - 如何在 Jenkins 声明式管道的 steps.sh 脚本中声明一个新变量?
- azure-cosmosdb - 将数组对象转换为小写以在 CosmosDB 查询中进行比较
- python - 为什么我的二进制搜索比线性搜索慢(python)