![使用 htaccess 文件来处理 410(页面消失)可以防止使用图片](https://linux22.com/image/777496/%E4%BD%BF%E7%94%A8%20htaccess%20%E6%96%87%E4%BB%B6%E6%9D%A5%E5%A4%84%E7%90%86%20410%EF%BC%88%E9%A1%B5%E9%9D%A2%E6%B6%88%E5%A4%B1%EF%BC%89%E5%8F%AF%E4%BB%A5%E9%98%B2%E6%AD%A2%E4%BD%BF%E7%94%A8%E5%9B%BE%E7%89%87.png)
我正在关闭一个网站。我已删除 wordpress 网站,域中仅剩的页面是宣布永久关闭该网站的页面。关闭页面的 URL 是...
http://mydomain.co.uk/index.htm
还有一个文件夹,里面有 4 张图片(3 张 *.jpg;1 张 *.gif)。这些图片是关机页面的一部分。因此...
http://mydomain.co.uk/images/
当我输入 URL:mydomain.co.uk 时 - 页面“mydomain.co.uk/index.htm”正确显示,页面中的图像也正确显示。页面中的图像使用此链接类型...
<img alt="Shutdown graphic" src="images/exampleimage.jpg" border="0" height="200" width="300" />
其工作正常。
但是,我试图让所有对“mydomain.co.uk”的调用都指向根文件夹并显示“index.htm”。因此,以下 URL 都将显示“index.htm”...
mydomain.co.uk
mydomain.com
mydomain.co.uk/anyfolder/
mydomain.co.uk/anyfolder/*.*
为了实现这一点,我尝试了这个.htaccess 文件...
ErrorDocument 410 /index.htm
# Trigger a 410 Gone for all user requests
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^ - [G]
此 .htaccess 文件对所有 URL 类型均能正常工作。但是,它无法在关闭页面中显示来自图片文件夹的图片。
我如何修改 .htaccess 文件以便可以显示图像?
我尝试更改标签中的链接,以便图像位于根目录中,并将图像放在根文件夹中。不幸的是,.htaccess 文件仍然阻止使用图像。
.htaccess 文件似乎阻止了 index.htm 文件中图像的使用。如果我删除 .htaccess 文件,mydomain.co.uk 的页面将再次正常运行(包含图像),但其他 URL 则无法正常运行。
请问有什么想法吗?
答案1
您需要进行一些更改...
您需要允许不受限制地访问您的图片。因此,在上述规则的情况下,您需要为您的
/images
目录(或者更确切地说,对目录中文件的任何请求/images
)设置例外。或者,最好只针对您要链接到的四张图片。- 您还可以发送
X-Robots-Tag: noindex
HTTP 响应标头,以确保搜索引擎不会尝试索引这些图像。或者也许阻止目录/images
(robots.txt
除非这些图像之前已被索引并需要删除)。
例如,紧接着
RewriteEngine
指令之后(现有规则之前):# Prevent the following images being blocked # (and set a NOINDEX env var) RewriteCond %{REQUEST_URI} /exampleimage1\.jpg$ [OR] RewriteCond %{REQUEST_URI} /exampleimage2\.jpg$ [OR] RewriteCond %{REQUEST_URI} /exampleimage3\.jpg$ [OR] RewriteCond %{REQUEST_URI} /example\.gif$ RewriteRule ^images/. - [E=NOINDEX:1,L] # Send "X-Robots-Tag" HTTP response header for these images Header set X-Robots-Tag "noindex" env=NOINDEX
或者,您可以在请求这些图片时检查 HTTP标头,并在不是您的网站时(例如来自搜索引擎的直接请求)
Referer
允许阻止它们。但是,由于标头不可靠,因此这种方法不太可靠。您可能会遇到看不到您的图片的用户。Referer
Referer
例如,您可以改用以下内容(
example.com
是您的域名),而不是上述内容:# Allow access to images when the "Referer" is the current site RewriteCond %{HTTP_REFERER} ^https?://(www\.)?example\.com(/|$) [NC] RewriteRule ^images/. - [L]
- 您还可以发送
当您在错误文档的 HTML 源代码中链接到这些图像时,您需要使用根相对 URL(以斜杠开头)或绝对 URL(使用方案 + 主机名),而不是像当前所做的那样使用相对 URL。否则,当请求不同路径深度的图像时,例如,浏览器将尝试加载不存在的
/foo/bar
图像。/foo/images/exampleimage.jpg
例如,使用根相对 URL:
<img alt="Shutdown graphic" src="/images/exampleimage.jpg"
替代方案 - 使用数据 URI(无外部图像)
或者,使用数据 URI 并将图像直接嵌入 HTML 源中(无外部图像)。参考:https://css-tricks.com/data-uris/