背景
最初,由于购买cc
域名不支持备案,所以就使用了阿里云香港云空间。自从2016年网站应用由.net
应用BlogEngine.NET
改为WordPress
至今都使用的阿里云香港云空间。稳定倒是挺稳定的,就是一直感觉访问速度比较慢,本以为是阿里云香港云空间本是这样,就没有研究其慢的真实原因,当然这已经是后话了。
今年云空间快要到期的时候,突然想将网站迁移到国内,为了不在备案期间停止域名访问,就更换了域名。当域名更换完成,空间迁移完毕,貌似一切准备就绪,发现原来空间即将到期,留给301
跳转的时间非常不足。本想使用阿里云DNS
解析进行301
跳转,这个也是最优的解决方案,无奈的是域名必须进行备案且是两个域名都必须备案。如果原来的域名也参与备案的话,网站就需要停止访问了,为了避免这种情况,只能放弃使用此方法。
发现
续费原来空间或者购买腾讯云和百度云等在价格上是不划算的。为了保证以最低的代价进行301
跳转,就开始找一些低价无需备案的空间来作为中转。经过两天的查找发现一款非常符合预期的服务商,支持多国语言 ,支持不同的支付方式,包括阿里的支付宝,从2006
年成立至今已经17
年的justhost
。发现最经济的一种方式以存储空间使用多少来进行收费的,1
兆每天0.001
元,也就是说1
兆每天1
厘,如下图所示:
使用
首先,注册该网站并充值1.17
美元,当时的最低充值金额。随后,订购所选择的服务计划(套餐),等待10
分钟左右邮件通知相关信息。以下便是订购的服务,按天来进行续订,按天进行扣费。
新建一个php
文件index.php
上传到根目录,其内容如下
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: 需要301跳转到域名");
exit();
?>
完整示例如下:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.mlplus.net");
exit();
?>
完成以上内容后发现一个问题,只有访问首页才会跳转,访问其他页面是没有作用的。为了达到所有请求进行301
跳转,需要进行额外的配置重定向。为了完成以上需求,需要在根目录下使用.htaccess
配置文件进行,这个文件如果存在就编辑修改,不存在则新建上传。新增具体内容如下:
RewriteEngine On
RewriteRule ^(.*)$ 这里是具体域名/$1 [R=301,L]
完整示例如下:
RewriteEngine On
RewriteRule ^(.*)$ https://www.mlplus.net/$1 [R=301,L]
经过一段时间的观察,此服务商也比较稳定,每天0.001
元,从2023年07月11日至2023年08月31日止,扣费0.06
元。
日志
使用的此服务是按照占用空间进行计算收费,网站访问产生的日志文件以及访问统计图表也是被计算在其中的。最初发现占用空间升高就手动清理一次,感觉手动清理太过繁琐,就是用程序自动清理一下。基于.net core
使用FluentFTP
库进行FTP
登录清理操作。
使用最简单,最暴力的方式完成,不考虑什么设计与性能,以最快的速度实现目的。
实现代码:
using FluentFTP;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace JustHost.Ftp.ClearLog
{
internal class CrontabFtpClear
{
System.Timers.Timer timer;
List<string> paths = new List<string>() { "/domains/skyfinder.cc/logs/", "/domains/skyfinder.cc/stats/" };
public CrontabFtpClear()
{
timer = new System.Timers.Timer();
timer.Interval = TimeSpan.FromHours(5).TotalMilliseconds;
//timer.Interval = TimeSpan.FromSeconds(5).TotalMilliseconds;
timer.Elapsed += Timer_Elapsed;
timer.Enabled = true;
timer.AutoReset = true;
}
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
timer.Enabled = false;
ClearProcess();
}
private void ClearProcess(){
try
{
Console.WriteLine($"操作:执行指定清理命令 时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
// 设置连接信息
var ftpClient = new FtpClient("这里是服务器IP地址", "这里是用户名", "这里是密码");
// 连接到FTP服务器
ftpClient.Connect();
foreach (var item in paths)
{
if (!ftpClient.DirectoryExists(item))
{
continue;
}
ftpClient.DeleteDirectory(item, FtpListOption.ForceList);
}
ftpClient.Disconnect();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
timer.Enabled = true;
}
}
}
}
调用运行:
using FluentFTP;
namespace JustHost.Ftp.ClearLog
{
internal class Program
{
static void Main(string[] args)
{
CrontabFtpClear ftpClear = new CrontabFtpClear();
Console.WriteLine($"FTP目录清理服务启动 {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
while (true)
{
Thread.Sleep(1000);
}
}
}
}
示例下载
justhost空间日志自动清理示例
转载请注明:清风亦平凡 » 迁移网站更改域名后一个可以使用的301跳转方案