全面的前端编程教程 - 秘密武器开发者中心

热搜:m1 代理 前端 301

利用宝塔nginx+lua实现网站部分栏目301到新站

2023-12-12 13:21:19

有时候我们的新站需要老网站带动收录,但是在新站一般不来蜘蛛抓取,所以我们可以使用这种方式来进行引蜘蛛,达到网站收录的目的,具体实现办法如下,我用的是宝塔面板,大家用的可以作为参考:

第一步

安装lua默认情况下宝塔已经下载了

宝塔环境默认是有安装lua的,如果没有的话,可以自己安装

首先卸载nginx服务,然后在软件商店中重新安装一定要选择编译安装
利用宝塔nginx+lua实现网站部分栏目301到新站

第二步

添加模块lua

利用宝塔nginx+lua实现网站部分栏目301到新站

模块参数

 --add- module=/home/ngx_cache_purge-2.3 --add-module=/home/lua-nginx-module-0.10.9rc7 --add- module=/home/ngx_devel_kit-0.3.0

前置脚本如下

wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz

到这里环境就安装好了

下一步在我们能记住的路径下面创建一个txt文件

下面我们会用到,我创建了到了这个地址/www/wwwroot/file.txt

文件内容格式是:

https://www.mimiwuqi.com/biji
https://www.mimiwuqi.com/qianduan

一行一个

下一步

在宝塔面板中选择你要操作的老网站,点击设置-配置文件填入下面的代码

利用宝塔nginx+lua实现网站部分栏目301到新站

代码如下

location /你的栏目/ {
    access_by_lua_block {
        local random = math.random(1,20)
        local target = nil
        local file = io.open("/www/wwwroot/file.txt", "r")
        if file then
            for i = 1, random do
                target = file:read("*line")
                if target == nil then
                    file:seek('set', 0) -- reset to beginning of the file if target == nil
                    target = file:read("*line")
                end
            end
            file:close()
            if target then
                return ngx.redirect(target, 301)
            end
        else
            ngx.say("Failed to read the URL file.") -- print error message if file can't be loaded
            return
        end
    }
}

上面这个

random(1,20)

是随机抽取你的file.txt的文档中的一个地址,让他301到新站,你可以改成自己的,比如你的file.txt里面有100个url,那么你可以写成

random(1,100)

以此类推