gpt4 book ai didi

apache - 为什么 apache 不为页面提供服务? mod_rewrite 似乎找到了正确的文件

转载 作者:行者123 更新时间:2023-12-04 19:14:39 25 4
gpt4 key购买 nike

我正在处理的项目有一个相当长且复杂的 RewriteRules 列表,出于遗留原因分为 2 个 .htaccess 文件。我将应用程序放入 Docker 容器中,以便更轻松地加入新开发人员,但 Ubuntu/Apache 组合在 RewriteRules 上令人窒息,并给了我一个 HTTP 500。

Docker 镜像:php:5.6-Apache
Apache 版本:2.4

我将日志记录提升到 trace4,它似乎找到了正确的文件 - 这是 mod_rewrite 调试输出的最后一行

[Thu Mar 16 09:08:15.459987 2017] [rewrite:trace1] [pid 17] mod_rewrite.c(475): [client 192.168.99.1:63990] 192.168.99.1 - - [rs.dev/sid#7f51cf6fece0][rid#7f51cf61c8f8/initial/redir#3] [perdir /var/www/appname/public_html/production/] pass through /var/www/appname/public_html/production/login.php

文件“/var/www/appname/public_html/production/login.php”存在,是应该加载的文件。但是,响应是作为 500 发送的(并且页面不会加载)。我在这里使用/login URL 作为示例,但它发生在所有 URL 上。

这适用于运行 macOS 的 Mac 的本地主机,它适用于 cPanel 服务器,我似乎无法让它在 Docker 提供给我的 Ubuntu 基础上运行。

有谁知道为什么 Apache 会使用 mod_rewrite 并似乎识别正确的文件,但随后不使用该文件?

作为引用,请求 is on pastebin 的整个日志输出.

最佳答案

原来我的问题根本不在重写,我忘记创建一个 PHP 试图创建的文件 require ,所以它抛出了一个 PHP 错误。但是,配置日志的方式,错误消失在以太中,(或者我还没有找到的日志)。

让这成为一个教训 - 即使你绝对确定错误在哪里,你可能仍然是错的!

关于apache - 为什么 apache 不为页面提供服务? mod_rewrite 似乎找到了正确的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42830027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com