Apache 忽略文件扩展名

标签 apache .htaccess

我使用以下 .htaccess 代码来使我的 URL 更清晰:

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]

它主要检查请求的 URL 是否指向文件或目录,如果没有,则以特定方式对其进行格式化。

问题是我的生产服务器在检查请求的 URL 是否指向文件时似乎忽略了文件扩展名。例如,如果服务器根目录中存在具有该名称的文件,则它会认为 URL /contact 指向名为 contact.jpg 的文件。

是什么导致 Apache 出现这样的行为?我可以采取什么措施来控制它 - 严格限制文件扩展名?

最佳答案

我相信这是因为 MultiViews 选项。 尝试 .htaccess 中的 Options -MultiViews

关于Apache 忽略文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5692178/

相关文章:

Apache /SNI : disabled or non-existent subdomain leads to other SNI subdomain being served

java - Tomcat 无法解析 '<%@ include file' ,可能与 taglibs JasperException : File Not Found 有关

regex - 如何在 .htaccess 的文件 block 中使用多个路径?

apache - 重写模块以处理站点版本文件夹(条斜杠)

php - 部署 WAMP -> 实时站点 - 任何随机提示?

mysql - 删除太多 MySQL 数据库后如何修复 XAMPP?

java - 目录和文件的 FTP JTree

php - 跨源请求被阻止。 WordPress 插件不工作

php - 在 PHP 代码中隐藏数据库登录信息

apache - 将 http 重定向到 https 并将 www 重定向到非 www?