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
在灯上使用 mod_rewrite 制作 seo/canonical url