我试图让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脚本,该脚本分发下载,假设他们有权限。
有关为什么会失败的任何想法?
答案 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 /”。