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