bbPress 链接重构与批量替换操作指南(NewVFX 案例)

VFX大学 bbPress 论坛系统(bbPress Forum System) bbPress 链接重构与批量替换操作指南(NewVFX 案例)

正在查看 3 条回复
  • 作者
    帖子
    • #509

      追光
      管理员

      上面的规则完整的匹配了99%的链接,配置的 Nginx 重定向规则中,只匹配了 URL 的“完全等价”路径,但未考虑末尾是否带有斜杠(/)的问题。但存在一些细微的缺陷:

      ✅ /forums/topic/12345 能跳转
      ❌ /forums/topic/12345/ 无法跳转

      1、解释:
      ([0-9]+) 匹配 topic ID
      /? 匹配 可选的斜杠
      $ 保证路径匹配结束

      2、如果还有 query 参数也想保留(比如 ?sort=asc),这样 ?xxx=yyy 会跟随跳转。

      location ~ ^/forums/topic/([0-9]+)/?$ {
          return 301 /topic/$1;
      }
      location ~ ^/forums/forum/([0-9]+)/?$ {
          return 301 /forum/$1;
      }
      location ~ ^/forums/users/(.+)/?$ {
          return 301 /users/$1;
      }
      location ~ ^/forums/members/(.+)/?$ {
          return 301 /members/$1;
      }
      location ~ ^/forums/reply/([0-9]+)/?$ {
          return 301 /reply/$1;
      }

    • #860

      追光
      管理员

      进一步完善在使用了一些天后发现,bbpress的标签并未跳转过来,给搜索带来一定负面影响及时修正,为了省事和伪静态写到了一起:

      location /
      {
      	 try_files $uri $uri/ /index.php?$args;
      }
      
      rewrite /wp-admin$ $scheme://$host$uri/ permanent;
      
      # 旧论坛话题跳转到新路径
      location ~ ^/forums/topic/([0-9]+)/?$ {
          return 301 /topic/$1;
      }
      location ~ ^/forums/forum/([0-9]+)/?$ {
          return 301 /forum/$1;
      }
      location ~ ^/forums/users/(.+)/?$ {
          return 301 /users/$1;
      }
      location ~ ^/forums/members/(.+)/?$ {
          return 301 /members/$1;
      }
      location ~ ^/forums/reply/([0-9]+)/?$ {
          return 301 /reply/$1;
      }
      location ~ ^/forums/topic-tag/(.+)/?$ {
          return 301 /topic-tag/$1;
      }
    • #1009

      追光
      管理员

      进一步发现搜索链接没有跳转过来

      # Search
      location ~ ^/forums/search/([^/]+)(/page/[0-9]+)?/?$ {
          return 301 /search/$1$2;
      }
    • #1010

      追光
      管理员

      然后最近对wordpress核心站点的文章和目录做了链接调整的nginx规则

      # 所有 vfx-software 目录跳转到 download/vfx-university-footage/vfx-software/
      location ~ ^/vfx-software/(.*)$ {
          return 301 https://www.newvfx.com/download/vfx-university-footage/vfx-software/$1;
      }
      
      # vfx-university-footage 内部素材跳转到 download 目录
      location ~ ^/vfx-university-footage/(.*)$ {
          return 301 https://www.newvfx.com/download/vfx-university-footage/$1;
      }
      
      # audio-footage 跳转
      location ~ ^/audio-footage/?$ {
          return 301 https://www.newvfx.com/download/audio-footage;
      }
      
      location ~* /wp-admin/admin-ajax\.php$ {
          allow all;
          include fastcgi_params;
          fastcgi_pass unix:/tmp/php-cgi-82.sock;  # 按你的 php 配置改
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_param SCRIPT_NAME $fastcgi_script_name;
          fastcgi_intercept_errors off;
          add_header Access-Control-Allow-Origin "https://www.newvfx.com";
          add_header Access-Control-Allow-Credentials "true";
      }
正在查看 3 条回复
  • 在下方一键注册,登录后就可以回复啦。