【问题标题】:Error 404 while opening site, httpd.conf?打开站点时出现错误 404,httpd.conf?
【发布时间】:2019-11-05 12:03:46
【问题描述】:

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

  1. 经过一些配置尝试使用“localhost/application”打开我的“应用程序”。
  2. 获取“内部错误 500”。
  3. 在 Apache 日志中可以看到“C:/WebData/application/.htaccess: Invalid command '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 正在变回其初始状态并显示“订单拒绝,允许”。

httpd.conf 有什么问题吗?

【问题讨论】:

    标签: php apache .htaccess webserver httpd.conf


    【解决方案1】:

    您可能不运行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

    【讨论】:

    • 非常感谢您的回答!该问题实际上是由应用程序的 index.php 自动生成 .htaccess 引起的。在我将自动配置更改为“要求全部授予”后,一切正常!你甚至无法想象我是多么感激!祝你一切顺利!
    猜你喜欢
    • 2015-09-19
    • 2015-01-08
    • 2016-06-07
    • 2021-07-07
    • 2011-10-18
    • 2023-02-07
    • 2016-01-15
    • 2023-03-31
    • 2016-12-15
    相关资源
    最近更新 更多