2009-09-09 17 views

उत्तर

24
RewriteEngine On 
RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .*$ /no_picture.png [L] 

चलिए इसे प्रत्येक पंक्ति का मतलब बताते हैं। यदि अनुरोध फ़ाइल कोष्ठकों () में एक फाइल एक्सटेंशन की है

RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC] 

चेक देखने के लिए। इस मामले में, हम फ़ाइल के नाम में या तो .jpg, .jpeg, .gif, .png या .ico

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

चेक समाप्त होता है कि फाइल वहाँ नहीं है यह देखने के लिए परीक्षण कर रहे हैं और यह भी एक निर्देशिका नहीं है।

RewriteRule .*$ /no_picture.png [L] 

यदि कोई अनुरोध किया गया संसाधन/फ़ाइल उन सभी परीक्षणों को पास करती है, तो यह एक ऐसी छवि है जो मौजूद नहीं है। तो ब्राउज़र में no_picture.png की छवि वापस लौटें। यह फ़ाइल नाम रखेगा। आप no_picture.png फ़ाइल नाम रीडायरेक्ट करना चाहते हैं, तो [R]

1
RewriteCond %{REQUEST_URI} pic/(.*) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule pic/(.*)   pic/no_picture.png [L,E=STATUS:404] 
1

अपने/images/निर्देशिका में, अपनी .htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule no_picture.png [L] 

का कहना है कि, अगर अनुरोध की गई फ़ाइल मौजूद नहीं है, यह फिर से लिखने no_picture.png को जोड़ना

+0

नहीं कि न के बराबर HTML या अन्य फ़ाइल प्रकार शामिल होंगे? – random

+0

हाँ, यह कुछ भी के लिए होगा। यही कारण है कि मैंने उल्लेख किया कि इसका उद्देश्य एक विशिष्ट छवि निर्देशिका के उद्देश्य से किया गया था। इसे केवल कुछ फ़ाइल एक्सटेंशन से मिलान करने के लिए बदला जा सकता है (जैसा कि अन्य उत्तरों ने किया है)। –

4

को [L] बदल यह भी काम करना चाहिए:

<FilesMatch "\.(jpg|jpeg|png|gif)$"> 
ErrorDocument 404 "/no_picture.png" 
</FilesMatch> 
संबंधित मुद्दे