【问题标题】:CDN URL to root folder / prevent duplicate content?CDN URL 到根文件夹/防止重复内容?
【发布时间】:2018-06-22 13:42:51
【问题描述】:

对于图片库,我必须安装 CDN 域。

默认域:

http://www.example.com
Apache folder: /html/mywebsite

CDN 域名:

http://cdn.example.com
Apache folder: /html/mywebsite

由于 url 重写等原因,CDN 域需要相同的 Apache 文件夹。

问题:

http://cdn.example.com
and
http://www.example.com

打开同一个网站,这很糟糕。我无法将 (301) 从 cdn 重写为 www,因为我必须提供来自 CDN 的图像。我也不能使用 403:

RewriteCond %{HTTP_HOST} ^cdn\.example\.com$ [NC]
RewriteRule .* / [F]

因为图片来自 cdn

http://cdn.example.com/images/test.jpg

也得到一个 403。是否可以只为根文件夹而不是子文件夹制作 403,或者你有更好的主意吗?

顺便说一句。 robots.txt 也很糟糕,因为来自 cdn 的图像应该被编入索引。 htaccess 解决方案会很棒。

【问题讨论】:

标签: php apache .htaccess mod-rewrite redirect


【解决方案1】:

如果您只希望cdn.example.com 的根目录(以及根目录中的任何文档)转到www.example.com,并且每个域使用单独的 VirtualHost,您可以使用如下简单的东西

RedirectMatch permanent ^/?(.+\.php)$ http://www.example.com/$1

cdn.example.com 的 VirtualHost 容器中。显然,您可以调整正则表达式以匹配您网站的文件。

请参阅Apache docs,了解为什么这比使用 mod_rewrite 更可取。它更简单、更易于维护,并且在许多情况下会带来更好的性能。

【讨论】:

    【解决方案2】:

    首先,谢谢softwariness和dartnow

    @dartnow:

    您的解决方案适用于我的问题。感谢您的宝贵时间。

    有一个更好的解决方案:

    RewriteCond %{HTTP_HOST} ^static.example.com$
    RewriteCond %{REQUEST_URI} !\.(?i:php|jpe?g|ico|js|txt|css|pdf|zip|gz|gif|png)$
    RewriteRule .* http://example.com%{REQUEST_URI} [L,R=301]
    
    cond 中的

    i:php 用于来自 php 文档的图像。 http://metasun.com/b/prevent-cdn-caching-webpages-avoid-duplicate-content

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多