通过.htaccess 的rewriterule 新旧网站的无缝转换,不丢权重
举个例子, 本来有个 A.com 的网站, 做了一定的人气, 有了权重. 因为人流量上升, 这个时候想更换网站程序, 比如做成一个论坛社区.
很简单想到的就是把 A.com 直接指向新的网站就行了. 但是这样, 以前的A.com 的所有的外链都失效了. 对权重非常不利.
主要目标有两个, 第一不丢失以前的外链. 第二让A.com的权重完全转到新的论坛.
我们可以这样实现. 1. 保留原网站, 这是为了确保, 外链都有效. 2, 把 A.com 重定向到 bbs.A.com
这里有一个问题,就是如果把A.com 重定向到了bbs.A.com了, 外链怎么保持呢. 原来的外链都是 http://a.com/abc/def.php 这种形式的.
这个时候想到的就是有条件的重定向, 当用户直接访问A.com的时候, 重定向到bbs.A.con. 如果用户是通过这种形式 http://a.com/abc/def.php 访问的网站, 则不重定向, 让它依然有效.
思路就是检测请求的uri, 如果没有uri 就直接重定向. 如果有uri 则不重定向.
这在php中很容易实现. 但是为了执行效率, 我决定改写.htaccess文件来实现.
在.htaccess 文件的最开始, 插入一下代码
RewriteEngine On
#这一句是判断Uri, 如果uri == /, 这里注意, 但用户直接输入a.com访问的时候, uri不是空, 而是 /
RewriteCond %{REQUEST_URI} =/
#这一句是重定向 到新的域名. 这里有三个参数, 第一个参数是当前的匹配uri,没有用, 第二个参数是要重定向的url, 注意直接写url,不用加引号, 第三个参数是中括号括起来的一些标记, 每个标记用逗号隔开, 第一个标记是 R=301,指定301永久重定向, 第二个参数是 L, 表示rewrite 规则到此结束, 不在往后解释.
RewriteRule .* http://bbs.a.com [R=301,L]
搞定.
希望大家多多交流.
原文来自 All by Neil, post 通过.htaccess 的rewriterule 新旧网站的无缝转换,不丢权重 转载请注明出处。本站保留一切权力
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述