我正在尝试使用我的.htaccess
和mod_rewrite将名为download
的目录中的mp3文件请求重定向到名为download.php
的PHP文件。此文件生成Google Analytics请求,然后将服务器端重定向到位于files
目录中的实际mp3文件。
重写应该将mp3名称指定为url参数,我可以通过$ _GET从PHP访问。但是这不起作用。
我的.htaccess看起来像这样
RewriteEngine On
RewriteRule ^.*download/(.*)\.mp3$ /download.php?url=http://static.example.com/files/$1.mp3 [QSA]
download.php
文件已执行,但如果我var_dump($_GET);
,则返回array(0) { }
我做错了什么?
答案 0 :(得分:2)
您很可能已启用MultiViews
,请在.htaccess上使用此行禁用它:
Options -MultiViews
MultiViews
使用选项Apache's content negotiation module
,它在mod_rewrite
之前运行,并使Apache服务器匹配文件扩展名。因此/file
可以在网址中,但它会投放/file.php
。