Apache .htaccess mod_rewrite RewriteCond问题

时间:2011-03-09 06:08:26

标签: apache .htaccess mod-rewrite

我试图让RewriteCond / RewriteRule对工作,除非我取消注释RewriteCond,否则会导致404错误,在这种情况下,所有内容都会被重定向。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /path/
RewriteCond /var/www/site/downloads/$1 -F
RewriteRule ^(.+)$ getdownload.php [L]
</IfModule>

这个想法是,如果文件存在于downloads目录中,则将用户发送到getdownload.php脚本,该脚本分发下载,假设他们有权限。

有关为什么会失败的任何想法?

1 个答案:

答案 0 :(得分:1)

RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule path/downloads/(.*) path/downloads/getdownload.php? [L]

仍然在URL中显示downloads / index.php,但提供/downloads/getdownload.php内容,并确保它是一个文件。 (注意:我的.htaccess文件位于我的测试站点的顶层。)

如果你想把它放入/ downloads /你可以从规则的两边删除“path / downloads /”。