使用 htaccess 文件来处理 410(页面消失)可以防止使用图片

使用 htaccess 文件来处理 410(页面消失)可以防止使用图片

我正在关闭一个网站。我已删除 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

您需要进行一些更改...

  1. 您需要允许不受限制地访问您的图片。因此,在上述规则的情况下,您需要为您的/images目录(或者更确切地说,对目录中文件的任何请求/images)设置例外。或者,最好只针对您要链接到的四张图片。

    • 您还可以发送X-Robots-Tag: noindexHTTP 响应标头,以确保搜索引擎不会尝试索引这些图像。或者也许阻止目录/imagesrobots.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允许阻止它们。但是,由于标头不可靠,因此这种方法不太可靠。您可能会遇到看不到您的图片的用户。RefererReferer

    例如,您可以改用以下内容(example.com是您的域名),而不是上述内容:

    # Allow access to images when the "Referer" is the current site
    RewriteCond %{HTTP_REFERER} ^https?://(www\.)?example\.com(/|$) [NC]
    RewriteRule ^images/. - [L]
    
  2. 当您在错误文档的 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/

相关内容