Существует статический метод System.IO.File.WriteAllBytes
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]
RewriteCond %{REQUEST_URI} pic/(.*)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule pic/(.*) pic/no_picture.png [L,E=STATUS:404]
В вашем каталоге / images / добавьте это в свой .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule no_picture.png [L]
В нем говорится, что если запрошенный файл не существует, перепишите его в no_picture.png