我和我的同事正在Windows(2.4.18)上使用apache,在mac(2.4.16)上使用apache。我们正在使用SVN进行保存项目。
除了一些图像之外的所有请求都使用以下.htaccess文件重定向到index.php。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteCond %{REQUEST_FILENAME} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.woff2)$
RewriteRule ^([^?]*)$ /index.php?path=$1 [NC,L,QSA]
当从windows访问“/ c-panel / folder / something”时,$ _GET中的路径参数就像它应该是“/ c-panel / folder / something”一样。当在mac路径上访问相同的URL时,param是“/c-panel/folder/something.php”。请记住,两个操作系统上实际存在something.php文件。那么为什么MAC apache最后会添加.php,什么时候不应该呢?它是什么时候来的?
提前致谢!
答案 0 :(得分:3)
这是由于在OSX Apache上启用了MultiViews
选项。您可以在.htaccess顶部使用此行关闭它:
Options -MultiViews
MultiViews
使用选项Apache's content negotiation module
在 mod_rewrite
之前运行,并使Apache服务器匹配文件扩展名。因此/file
可以在网址中,但它会投放/file.php
。