在Drupal 6中为丢失的图像添加状态代码410

时间:2018-02-21 14:33:47

标签: php .htaccess drupal drupal-6 http-status-code-410

我需要在Drupal 6中发送缺失图像而不是404的状态410。 例如,我有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] 

1 个答案:

答案 0 :(得分:0)

您可以使用:

 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>