php – .htaccess文件重定向到错误的目的地

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – .htaccess文件重定向到错误的目的地脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个LamP堆栈.我正在使用以下.htaccess文件自动将请求映射到.PHP文件
RewriteCond %{REQUEST_FILENAME} !-f
rewriterule ^([^\.]+)$$1.PHP [NC,L]

因此,如果我浏览到http://example.com/asdf,将加载“asDF.PHP文件.

但是,如果我创建一个具有相同名称的.css文件(即“asdf.css”),那么当浏览到没有扩展名的名称时,服务器将返回css文件而不是PHP文件.似乎也发生.txt文件扩展名,可能还有其他任何三个字符的扩展名(虽然不会发生.js文件).

我不明白为什么会这样.我对重写规则集的理解是这样的:
1)如果请求的文件不存在
然后
2)如果文件名不包含句点,请将请求重定向到[filename] .PHP

如何返回.txt或.css文件,尤其是当匹配的.PHP文件存在时?我在这里想念的是什么

谢谢!

如果您有多个具有相同基本名称文件,那么听起来就像您一样
与MultiViews发生冲突.尝试在.htaccess文件(或服务器配置)中禁用此功能
Options -MultiViews

MultiViews(mod_negotiation的一部分)与mod_rewrITe尝试做同样的事情,我怀疑是“获胜”.当您请求/ asdf和asdf映射到文件基名时,MultiViews会尝试提供与预期的MIME类型相匹配的适当文件(这可以解释为什么错过.js文件).

否则,你对mod_rewrite指令的理解是非常正确的,除了顺序是另一种方式(首先处理RewriteRule模式)…

>如果URL(整个URL)不包含句点.
>并且请求不会映射到有效文件(如果所有文件都有文件扩展名,则不太可能 – 因此可能会省略此条件).
>通过附加.PHP扩展名在内部重写请求.

没有必要在字符类中转义文字句点,并且NC标志在这里是多余的.

脚本宝典总结

以上是脚本宝典为你收集整理的php – .htaccess文件重定向到错误的目的地全部内容,希望文章能够帮你解决php – .htaccess文件重定向到错误的目的地所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。