mod_rewrite插入文件的完整路径

时间:2013-12-31 18:29:30

标签: apache .htaccess mod-rewrite

我需要创建一个重写来将流量转到特定子目录中的mp3 / mp4文件,然后将它们路由到跟踪下载统计信息等的PHP文件,然后再将它们路由到实际文件位置,因为iTunes需要您的播客RSS包含实际媒体文件扩展名(.mp3,.mp4等)

我之前创建过重写没有问题,但现在我在这家公司的服务器上遇到了一个奇怪的问题。

我的.htaccess位于www.company.com/companytools/podcasts

RewriteEngine on
RewriteRule ^/(.*).mp3$ /test.php?file=$1 [r=301,L]

现在它部分正常工作它确实对mp3文件起作用,但最终包括域后的test.php的完整路径,所以我最终得到一个404页面寻找这个URL:

www.company.com/www/internal/docs/companytools/podcasts/test.php?file=test

基本上我需要路径,但只需要/ companytools / podcasts部分。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可能不需要R=301隐藏实际的PHP处理程序。

使用RewriteBase

尝试此规则
RewriteEngine on
RewriteBase /companytools/podcasts/

RewriteRule ^(.+?)\.mp3$ test.php?file=$1 [L,QSA]