gpt4 book ai didi

php - .htaccess 重写 - 如果存在与参数同名的文件则失败

转载 作者:可可西里 更新时间:2023-10-31 22:46:46 24 4
gpt4 key购买 nike

我在重写规则方面遇到了一些麻烦,在谷歌搜索后我一无所获。我有一个 URL 设置的标准重写,如下所示:

RewriteRule ^services/(.*)/ /services/index.php?content=$1 [L]

该站点使用content 的值从数据库请求相关内容,但只是使URL 看起来更漂亮;标准的东西。这在一定程度上起作用。例如,如果我的 URL 是 /services/testimonials/ 则规则可以正常工作;内容被加载并且页面正常显示。我在某些 URL 中看到的内容(例如 /services/training/)是一个错误说明:

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0 Fatal error: Unknown: Failed opening required 'redirect:/services/index.php' (include_path='[removed]') in Unknown on line 0

经过多次谷歌搜索和头脑 Storm (两者都没有什么进展),我发现如果我将 URL 更改为 /services/Training/(注意大写的 T)它会起作用。这很快让我想到了 URL 与某些东西的冲突(事后看来我应该首先想到的)。在检查了哪些 URL 有效而哪些无效后,我将这些点连接起来,发现损坏的 URL 在与 URL 相同的子目录中具有同名文件。这句话让人费解。基本上我不能使用 URL /services/training/,因为有一个文件 /services/training.php 会导致返回错误。

对此有一个明显的解决方法,即重命名与 URL 冲突的文件,但是在重写规则中有没有办法让它忽略它可能找到的任何同名文件?

最佳答案

Options -MultiViews

这应该可以防止 url 映射到 training.php。然而,它不会阻止 /services/training.php 不映射,但我认为这不会成为问题。

关于php - .htaccess 重写 - 如果存在与参数同名的文件则失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8892626/

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