打开网站httpd.conf时出现错误404?

时间:2019-06-23 12:11:11

标签: php apache .htaccess webserver httpd.conf

我有一个需要在本地Web服务器上打开的php应用程序。我在我的VM上运行Windows 7。已安装php 7.3.6,mysql,apache 2.4。

  1. 进行一些配置后,尝试使用“ localhost / application”打开我的“ application”。
  2. 获得“内部错误500”。
  3. 在Apache日志中可以看到“ C:/WebData/application/.htaccess:无效的命令'order',可能是服务器配置中未包含的模块拼写错误或定义了此命令”
  4. 在.htaccess中,我有:
order deny,allow
RewriteEngine On
RewriteBase /
RewriteRule .* index.php?url=$0 [QSA,L]
  1. 将第一行更改为“需要全部授予”
  2. 尝试打开“本地主机/应用程序”
  3. 未找到错误“ 404 URL /index.php”
  4. 尝试打开“ localhost / application / index.php”
  5. 转发到“ localhost / ru / main”
  6. 找不到另一个错误“ 404 URL ..”

在每次请求之后,我还看到htaccess改回其初始状态,显示为“ order deny,allow”。

httpd.conf出问题了吗?

1 个答案:

答案 0 :(得分:0)

您可能没有运行mod_access_compat,这意味着Order不可用,因为它在Apache 2.4中已弃用(请参阅https://httpd.apache.org/docs/2.4/howto/access.html

现在,.htaccess文件被覆盖的原因可能在于您正在运行的PHP代码中。某些应用程序会尝试自动进行自我配置,并会编写自己的.htaccess文件以确保其正常运行。

这个特定的应用程序试图编写不推荐使用的命令而不检查您正在运行的Apache版本是否能够处理这些命令这一事实令人担忧,并且可能意味着它已过时。

对应用程序文件进行全局搜索,并寻找该Order deny, allow规则,我很确定您会找到罪魁祸首。

如果您可以运行该代码的较新版本,请执行此操作;如果不能运行,并且可以手动进行修补,则将其更改为Require all granted