gpt4 book ai didi

如果路径上的文件存在,Apache 不会重写请求

转载 作者:行者123 更新时间:2023-12-03 23:57:27 24 4
gpt4 key购买 nike

我正在对每个与现有文件或目录不匹配的请求使用 mod_rewrite 进行重写。这是我的配置:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /index.php [NC,L]

这用于将 /abc/foo/abc/foo/10 等 URL 映射到我的应用程序。而且效果很好。

为了提高性能,我的应用现在将调用 /abc/foo 的结果存储在相应目录 /abc< 中的文件 foo - 这样在第一次调用后重写条件不再适用(文件不存在),apache 直接提供数据而无需先调用应用程序。效果也很好。

问题是:请求 /abc/foo/10 现在不再导致 URL 被重写,而是收到错误“404 File Not Found”。日志条目表明重写条件 !-f 不再为真,但实际上文件 /abc/foo/10 确实 not 存在. /abc/foo 存在,但是是文件,不是目录。

我怎样才能让它工作?

(多 View 已禁用)

最佳答案

这是因为 foo 作为文件存在,而 apache 为 foo 提供附加的/10 作为查询字符串传递。因此,您的应用程序应该向 foo 文件写入一些额外的代码,该代码还会检查请求是否包含一些额外的 url 组件,然后处理目录“foo”和文件 10 的创建。

关于如果路径上的文件存在,Apache 不会重写请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7483005/

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