Mod_rewrite 结合 SEO 友好的 url 和 CDN

Posted

技术标签:

【中文标题】Mod_rewrite 结合 SEO 友好的 url 和 CDN【英文标题】:Mod_rewrite combining SEO friendly urls and CDN 【发布时间】:2020-05-06 22:52:12 【问题描述】:

我确信一定有一个聪明的方法来解决这个问题,但我就是想不通。我正在使用 mod_rewrite 创建对 SEO 友好的文件名并切换到我们的 CDN。我可以分别做它们,但它们在一起会互相抵消

我们使用 mod_rewrite(在 htaccess 中)来创建 SEO 友好的文件名。例如:-

重写规则 ^thumbnails/([0-9]+)/([^/]+).jpg$ /thumbnails/$1/image.jpg [NC,L]

将https://www.example.com/thumbnails/123/my-image-of-a-puppy.jpg 映射到https://www.example.com/thumbnails/123/image.jpg

一切正常。但我们也使用 mod_rewrite 从 CDN 拉取图像,所以我们使用类似这样的东西:-

重写规则 ^(.*).(jpeg|jpg|png)$ https://cdn-w.example.com%REQUEST_URI [R=301,NC,QSA,L]

现在 mod_rewrite 执行外部 301 重定向(如果我省略 R=301 位,则为 302)。

这一切都很好,但就 google 而言,https://www.example.com/thumbnails/123/my-image-of-a-puppy.jpg 只是被重定向到https://cdn-w.example.com/thumbnails/123/image.jpg,这取消了 SEO 友好的文件名不是吗??

我错过了什么吗?

【问题讨论】:

【参考方案1】:

如果您在 CDN 引用上使用 [P] 修饰符,它应该可以按您的意愿工作。

使用此标志实现更强大的 ProxyPass 指令实现,将远程内容映射到本地服务器的 命名空间

因此,URL 应该与进入时保持不变,内容来自 CDN。

【讨论】:

使用 CDN 的要点之一,可能是您想要承担服务器的负载。如果您现在让您的服务器充当代理,那么对任何这些 CDN 资源的每个请求都必须再次“通过”它,这有点完全否定了这一点。并且用户最终获得数据的时间范围也可能会增加。

以上是关于Mod_rewrite 结合 SEO 友好的 url 和 CDN的主要内容,如果未能解决你的问题,请参考以下文章

使用 apache 的 mod_rewrite 来解析 SEO 友好的 URL

如何通过php查询使URL友好SEO [重复]

.htaccess 新手问题使用 mod_rewrite

在灯上使用 mod_rewrite 制作 seo/canonical url

使用 Mod_Rewrite 的临时维护页面对我的 Google 信誉和/或 SEO 有害吗? [关闭]

使用 mod_rewrite 实现具有多个变量的友好 URL 的最佳方法是啥?