Я хочу показать no_picture.png, если запрашиваемого изображения не существует. Я должен сделать это с .htaccess. Большое спасибо.
Показать no_picture.png.htaccess, если изображение не существует
Ответ 1
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
, измените [L]
на [R]
Ответ 2
это также должно работать:
<FilesMatch "\.(jpg|jpeg|png|gif)$">
ErrorDocument 404 "/no_picture.png"
</FilesMatch>
Ответ 3
RewriteCond %{REQUEST_URI} pic/(.*)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule pic/(.*) pic/no_picture.png [L,E=STATUS:404]
Ответ 4
В вашем/images/каталоге добавьте это в свой .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule no_picture.png [L]
Это говорит о том, что если запрошенный файл не существует, перепишите его на no_picture.png