0
我試圖得到一個RewriteCond/RewriteRule對工作,這將導致404錯誤,除非我取消註釋RewriteCond,在這種情況下,一切都被重定向。Apache .htaccess mod_rewrite RewriteCond問題
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /path/
RewriteCond /var/www/site/downloads/$1 -F
RewriteRule ^(.+)$ getdownload.php [L]
</IfModule>
的想法是,如果該文件在下載目錄中的用戶發送到getdownload.php腳本,用於分配的下載,假設他們有權限。
有什麼想法爲什麼這會失敗?
這似乎與我所需要的相反 - 我需要該文件不存在,而是存在於下載目錄中,在這種情況下,腳本getdownload.php(不在下載中)被重寫。 – skeggse 2011-03-09 18:36:49
如果我理解你是正確的,那麼你所需要做的就是從規則的最後部分刪除/下載/。那時Apache應該說,「訪問者正在請求一個文件(存在於)path/downloads /中,因此我將它們指向path/getdownload.php」。無論上面有沒有Cond,如果該文件不存在於/ downloads /中,您將得到一個404。通過添加Cond,只有在/ downloads /中存在真正的文件時纔會觸發規則 - 實質上可以更快地殺死頁面調用一個腳本。 – Dawson 2011-03-09 19:26:42
'RewriteRule path/downloads /(.*)path/getdownload.php? [L]' – Dawson 2011-03-10 06:51:55