域名更换后,站长们有两个选择。
域名跳转方案,便是站长最头疼的问题。

全站301重定向,直接重定向跳转到新域名。这是比较好的解决方案,也对SEO友好。但对于访客而言很难观察到域名的变化,仍然记得是旧域名。
提示页面跳转,也就是出现一个提示页面域名已更改,再配上跳转。这样对访客很友好,但对于SEO而言以前的收录链接相当于全部作废了。

而咱的这个跳转页面则是整合了这两种的优点,即有跳转提示页面,又照顾到了SEO问题。

QQ截图20190719115019.png

版本记录

项目地址:https://github.com/AyagawaSeirin/RenewDomainPage
master分支为最新稳定版本,dev分支为开发进度,其他分支为各个版本。
本文介绍最新版本使用方法,旧版本请查看下方分支链接。
V2.1.0 - 2019.8.30
V2.0.0 - 2019.8.11
V1.0.0 - 2019.7.19

V2.1.0更新特性:
1.配置项支持自定义蜘蛛标识
2.增加默认蜘蛛标识,更完善的应对爬虫

介绍

为了兼顾访客体验和SEO问题,我做了这个东西。
效果预览:rmb.moe
(由于开启了站内链接直接跳转配置,请打开新的网页手动访问才能看到提示页面效果)
检测UA是否为搜索引擎蜘蛛爬虫,若是则直接301重定向,达到优化SEO的目的。
其他则为普通访客,显示倒计时跳转提示页面。
这便是核心功能,再搭配上伪静态处理,网站下所有链接都能跳转到新域名的对应链接。

使用

安装

项目地址:https://github.com/AyagawaSeirin/RenewDomainPage
将所有文件下载放入到网站根目录即可。

伪静态配置

具体如何设置伪静态不再赘述,这里仅贴出伪静态规则。
Apache:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*?)$ /index.php?url=$1
</IfModule>

Nginx:

rewrite ^(.*?)$ /index.php?url=$1;

项目已经配置好了Apache伪静态规则在.htaccess文件内,如果您的Apache支持使用.htaccess文件配置伪静态,则不需要再手动配置了。

域名设置

编辑config.php文件,即可快捷配置项目。
只有domain和scheme参数需要您自己配置,其他参数保持默认即可,若您需要深度自定义可配置其他参数。

domain:跳转目标域名。
scheme:跳转目标的协议头,https://或http://
ILJ:站内链接是否直接跳转,假如访问来源是站内(目标域名),则直接跳转不显示倒计时页面。因为更换域名后网站可能有些链接没来得及更改域名,每次访问都提示会影响访客体验。
title:网站标题。
content:网站内容文本。
img_from:图片来源,true为图片在该网站(跳转提示站)内,false为图片为网站外的链接。
img:图片路径,若参数img_from为true则输入相对于网站根目录路径,第一个斜杠不需要输入。若参数img_from为false则输入图片绝对路径,不能为本跳转站图片。
spider:蜘蛛标识,为数组,将会在UA里寻找蜘蛛标识来判断。

到此为止就配置完毕了

技术问题

前端设计

由于咱的前端水平较低,这个跳转页面的设计是模仿的另一个跳转页面:点击这里
另外,图片的P站ID:65309723
同时还使用了MDUI作为前端框架

伪静态规则缺陷

这个伪静态规则十分直接,把所有目录或文件都直接伪静态到了index.php。
这也导致了有个问题,访问其他资源比如根目录的img.png,也会被伪静态到index.php造成图片资源无法正常读取。
所以为了解决这个问题,在index.php的开头检测文件名是否为img.png,若是则读取图片资源并返回。虽然到底是解决了问题,但仍是美中不足的地方。
另外由于各种原因,URL的锚链接和URL参数会丢失,这也是需要解决的问题。

以上便是目前存在的问题,欢迎各位大佬提供解决方案~
其实无伤大雅啦这些小问题。