我使用以下 .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/