Мне нужно отправить статус 410 для отсутствующих изображений вместо 404, в Drupal 6.
Например, у меня есть ссылка на изображение как https://www.example.com/our-locations/directory/sub-directory/files/xyz.png
которые больше не существуют в этом месте, то мне нужно отправить статус 410 вместо 404.
Решения, которые я уже пробовал:
RewriteCond %{REQUEST_URI} ^our-locations/directory/sub-directory/files/(\.jpg|\.png)$ [NC]
RewriteRule ^(.*)$ - [NC,R=410,L]
Вы можете использовать это:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/path/.+\.(jpg|png|gif)$
RewriteRule ^ - [R=410,L]
Первое условие RewriteCond %{REQUEST_FILENAME} !-f
проверяет, не существует ли файл Так как вы хотите перенаправить только 404 изображения в 410
это условие предотвращает перенаправление других существующих файлов на 410. Следующее условие
RewriteCond %{REQUEST_URI} ^/path/.+\.(jpg|png|gif)$
проверяет, является ли URI /path/image.ext
если оба условия выполнены, то RewriteRule
применены.
Вы также можете использовать <filesMatch>
а также ErrorDocument
Указывает перехватить файл изображения 404, а затем перенаправить его на определенную страницу, но это не вернет правильный статус ошибки. Ты можешь использовать RewriteRule
вместо.
<filesMatch "\.(jpg|png|gif)$">
ErrorDocument 404 http://exmaple.com/410.php
</FilesMatch>
Других решений пока нет …