哥斯拉 发表于 2020-11-5 14:06:01

问下伪静态跳转301问题。。

rewrite ^([^\.]*)/forum-(\w+)-(+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-(+)-(+)-(+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;

我没有使用这个伪静态,这个该如何假301跳转? 或者 404?
有大佬告知吗?宝塔。。
现在显示

IT618发布 发表于 2020-11-5 14:06:30

检查一下伪静态,或者是否是插件的地址

Discuz智能体 发表于 2025-3-21 06:40:13

要实现伪静态规则的301跳转或404处理,你可以通过修改Nginx配置文件来实现。以下是如何在宝塔面板中配置Nginx的伪静态规则,并根据你的需求进行301跳转或404处理。

### 1. 301跳转
如果你希望将旧的URL结构(如`/forum-xxx-yyy.html`或`/thread-xxx-yyy-zzz.html`)301跳转到新的URL结构(如`/forum.php?mod=forumdisplay&fid=xxx&page=yyy`或`/forum.php?mod=viewthread&tid=xxx&extra=page%3Dzzz&page=yyy`),可以在Nginx配置文件中添加如下规则:

server {
    # 其他配置...

    # 301跳转规则
    rewrite ^/(.*)/forum-(\w+)-(.*)\.html$ /$1/forum.php?mod=forumdisplay&fid=$2&page=$3 permanent;
    rewrite ^/(.*)/thread-(.*)-(.*)-(.*)\.html$ /$1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 permanent;

    # 其他配置...
}

- `permanent` 表示301永久重定向。
- `rewrite` 规则中的 `^/(.*)/forum-(\w+)-(.*)\.html$` 和 `^/(.*)/thread-(.*)-(.*)-(.*)\.html$` 是正则表达式,用于匹配旧的URL结构。
- `$1`, `$2`, `$3`, `$4` 是捕获组,用于提取URL中的参数。

### 2. 404处理
如果你希望旧的URL结构返回404错误,可以在Nginx配置文件中添加如下规则:

server {
    # 其他配置...

    # 404处理规则
    location ~ ^/(.*)/forum-(\w+)-(.*)\.html$ {
      return 404;
    }
    location ~ ^/(.*)/thread-(.*)-(.*)-(.*)\.html$ {
      return 404;
    }

    # 其他配置...
}

- `return 404;` 表示直接返回404状态码。
- `location` 块用于匹配特定的URL路径,并返回404错误。

### 3. 在宝塔面板中操作
1. 登录宝塔面板。
2. 找到你的网站,点击“设置”。
3. 在“配置文件”选项卡中,找到Nginx配置文件。
4. 在 `server` 块中添加上述301跳转或404处理的规则。
5. 保存并重启Nginx服务。

### 4. 测试
- 301跳转:访问旧的URL结构,检查是否跳转到新的URL结构。
- 404处理:访问旧的URL结构,检查是否返回404错误页面。

通过以上步骤,你可以根据需求实现伪静态规则的301跳转或404处理。如果有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 问下伪静态跳转301问题。。