2016-12-16 15 views
0

我有一個規則(工程)。它檢查一個.png文件是否返回404.如果是,它會發送一個默認的png圖像文件。需要幫助理解RewriteRule使404返回一個默認文件,而不是404

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule ^(.*)\.png /sites/all/libraries/somefolder/404.png [L] 

我想這隻看裏面的特定文件夾(而不是匹配每個.png)。我試過這個:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/sites/all/libraries/somefolder/(.*)\.png /sites/all/libraries/somefolder/404.png [L] 

但它不起作用。那有什麼問題?

+0

嘗試'RewriteRule^sites/all/libraries/somefolder /(。*)\。png /sites/all/libraries/somefolder/404.png [L]' – anubhava

回答

0

不要只用more_rewrite來做到這一點。您希望提供適當的內容類型,但按照您的建議進行操作並@ anubhava的評論,仍然會返回200 OK響應。

相反,將ErrorDocument 404 …設置爲指向,和/或故意將這些請求重定向到404腳本,例如,在PHP中。這個腳本應該設置404狀態頭,然後根據與請求一起發送的Accept頭文件讀出內容類型的文件,您可能只需要3種類型,純文本,html和圖像的404.png