0

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

1 回答 1

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>
于 2018-02-21T15:04:53.530 回答