·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

网站改版,不符合提交规则怎么办? New

115 2
发表于 2024-4-28 20:44:45 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
网站改版后使用了Discuz,之前用的不是Discuz。是同一个域名,之前百度收录的怎么转到现在的链接,因为是手工处理的全部都没有规律,也不符合提交规则,怎么办?有3000条收录!比如:
改前的链接为:www.xxxx.com/detailedTranslation/?article_id=194
改后的链接为:www.xxxx.com/thread-97-1-1.html



有人告诉我直接改的nginx的配置conf文件,再里面写上301调转代码就行。

但是我不太懂,请帮忙看看具体如何写跳转,谢谢!
我要说一句 收起回复

评论2

AI智能体Lv.7 发表于 2025-3-13 23:44:05 | 查看全部
根据您的需求,可以通过以下Nginx配置实现301重定向。以下是具体的解决方案:

-----
**步骤一:创建映射文件**
在服务器创建`/etc/nginx/article_id.map`,格式为:
  1. 194 97;
  2. 195 98;
  3. ... # 3000条旧ID与新ID的映射关系
复制代码


-----
**步骤二:Nginx主配置** (建议在server块内添加)
  1. map $arg_article_id $new_thread {
  2.     include /etc/nginx/article_id.map;
  3. }

  4. server {
  5.     ...
  6.     # 旧链接重定向规则
  7.     location ~* ^/detailedTranslation/ {
  8.         if ($args ~* "article_id=(\d+)") {
  9.             set $article_id $1;
  10.             if ($new_thread) {
  11.                 return 301 /thread-$new_thread-1-1.html;
  12.             }
  13.         }
  14.         # 未匹配的请求统一到首页
  15.         return 301 /;
  16.     }
  17.     ...
  18. }
复制代码

-----
**关键要点说明:**
1. `map`指令通过哈希表快速匹配新旧ID,3000条数据内存消耗约3MB
2. `$arg_article_id`自动获取URL参数值
3. `return 301`实现永久重定向,权重传递效率比rewrite更高
4. 未匹配的旧链接统一跳转首页,避免产生404死链

-----
**高级优化方案**(需MySQL支持):
  1. location ~* ^/detailedTranslation/ {
  2.     access_by_lua_block {
  3.         local article_id = ngx.var.arg_article_id
  4.         if article_id then
  5.             local mysql = require "resty.mysql"
  6.             local db, err = mysql:new()
  7.             local ok, err = db:connect{
  8.                 host = "127.0.0.1",
  9.                 port = 3306,
  10.                 database = "discuz_db",
  11.                 user = "redirect_user",
  12.                 password = "your_password"
  13.             }
  14.             local res, err = db:query("SELECT tid FROM pre_redirect_map WHERE article_id="..article_id)
  15.             if res and res[1] then
  16.                 ngx.redirect("/thread-"..res[1].tid.."-1-1.html", 301)
  17.             end
  18.         end
  19.     }
  20. }
复制代码

*需安装lua-nginx-module和lua-resty-mysql库*

-----
**注意事项:**
1. 建议设置定期更新映射表的机制(每天同步数据库)
2. 保留原始重定向日志用于后续分析:
  1. log_format redirect_log '$remote_addr - $arg_article_id => $sent_http_location';
  2. access_log /var/log/nginx/redirect.log redirect_log;
复制代码

3. 使用`curl -I 旧链接`测试返回状态码应为301
4. 百度站长平台需提交改版规则和死链列表

如需进一步优化正则匹配效率或需要自动化ID映射方案,可提供更多技术细节。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-20 01:45:55 | 查看全部
在网站改版后,尤其是从非Discuz系统迁移到Discuz系统时,旧链接与新链接之间的映射关系可能会变得非常复杂。为了确保搜索引擎(如百度)能够正确地将旧链接的权重传递到新链接,使用301重定向是一个非常好的方法。301重定向是永久性重定向,能够告诉搜索引擎旧的URL已经永久地转移到了新的URL。

你提到的情况是旧链接和新链接之间没有规律,这种情况下,手动设置每个旧链接到新链接的301重定向可能会非常繁琐。不过,你可以通过编写Nginx配置文件来实现这些重定向。

### 具体步骤:

1. **确定旧链接和新链接的映射关系**:
   你需要有一个旧链接和新链接的映射表,例如:
  
  1. /detailedTranslation/?article_id=194 -> /thread-97-1-1.html
  2.    /detailedTranslation/?article_id=195 -> /thread-98-1-1.html
  3.    ...
复制代码


2. **编写Nginx配置文件**:
   在Nginx配置文件中,你可以使用`rewrite`指令来实现301重定向。假设你的Nginx配置文件位于`/etc/nginx/nginx.conf`或`/etc/nginx/sites-available/default`,你可以在`server`块中添加如下内容:

  
  1. server {
  2.        listen 80;
  3.        server_name www.xxxx.com;

  4.        # 其他配置...

  5.        # 301重定向规则
  6.        rewrite ^/detailedTranslation/\?article_id=194$ /thread-97-1-1.html permanent;
  7.        rewrite ^/detailedTranslation/\?article_id=195$ /thread-98-1-1.html permanent;
  8.        # 添加更多的重定向规则...

  9.        # 其他配置...
  10.    }
复制代码


   注意:`permanent`表示301永久重定向。

3. **测试Nginx配置**:
   在保存Nginx配置文件后,使用以下命令测试配置文件是否正确:
  
  1. sudo nginx -t
复制代码

   如果配置正确,你会看到`syntax is ok`和`test is successful`的提示。

4. **重启Nginx服务**:
   测试通过后,重启Nginx服务以使配置生效:
  
  1. sudo systemctl restart nginx
复制代码


### 批量处理重定向规则

如果你有大量的旧链接和新链接需要映射,手动编写每个`rewrite`规则可能会非常耗时。你可以考虑使用脚本自动生成这些规则。例如,使用Python脚本生成Nginx配置:

  1. mappings = {
  2.     "/detailedTranslation/?article_id=194": "/thread-97-1-1.html",
  3.     "/detailedTranslation/?article_id=195": "/thread-98-1-1.html",
  4.     # 添加更多的映射...
  5. }

  6. with open("nginx_redirects.conf", "w") as f:
  7.     for old_url, new_url in mappings.items():
  8.         f.write(f"rewrite ^{old_url}$ {new_url} permanent;\n")
复制代码


然后将生成的`nginx_redirects.conf`文件内容复制到Nginx配置文件中。

### 其他注意事项

- **确保旧链接和新链接的映射准确**:错误的映射会导致用户和搜索引擎访问到错误的页面。
- **监控重定向效果**:使用工具如Google Search Console或百度站长工具监控重定向的效果,确保搜索引擎能够正确抓取新链接。
- **保持旧链接的权重传递**:301重定向可以帮助传递旧链接的权重到新链接,但需要确保重定向设置正确。

通过以上步骤,你可以有效地将旧链接重定向到新链接,确保搜索引擎能够正确索引你的新网站内容。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.212,GMT+8, 2025-6-17 06:21 , Processed in 0.290161 second(s), 84 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表