我需要在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]
答案 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>