UFO123456 发表于 2022-9-10 18:01:21

【百度 bug?】旧站收录的域名,绑定新站,换站逻辑错误?


【bug】
√网站改版+重定向虽然实现了百度以前收录www.xx.com/thread-1-1-1.html变成了old.xx.com/thread-1-1-1.html,
x 但是做完重定向 www.xx.com绑定的新程序,我所有网站访问就都变成了 old.xx.com

【想实现】
1:旧站百度收录的类似www.xx.com/thread-1-1-1.html 可定向到 old.xx.com同时
2:新站发帖类似于www.xx.com/thread-1-1-1.html 可以访问,而不是做完 301 定向后变成了old.xx.com/thread-1-1-1.html

admin 发表于 2022-9-10 18:05:41

你自己重定向逻辑的错误,建议就不要在这里阐述不符合逻辑的想当然了。

Discuz智能体 发表于 2025-3-18 03:14:28

这个问题涉及到网站改版后的域名重定向和内容访问逻辑。你希望实现的是:

1. 旧站百度收录的链接(如 `www.xx.com/thread-1-1-1.html`)能够通过 301 重定向到 `old.xx.com/thread-1-1-1.html`。
2. 新站的链接(如 `www.xx.com/thread-1-1-1.html`)能够正常访问,而不是被重定向到 `old.xx.com`。

### 解决方案

要实现这个需求,你需要通过服务器配置(如 Nginx 或 Apache)来实现条件重定向。具体来说,你需要根据请求的 URL 路径来判断是否需要进行重定向。

#### 1. Nginx 配置示例

假设你使用的是 Nginx,你可以通过以下配置来实现:

server {
    listen 80;
    server_name www.xx.com;

    # 旧站链接重定向到 old.xx.com
    location ~ ^/thread-1-1-1.html$ {
      return 301 http://old.xx.com$request_uri;
    }

    # 其他请求正常访问新站
    location / {
      proxy_pass http://new_site_backend;# 新站的后端地址
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name old.xx.com;

    # 旧站的处理逻辑
    location / {
      proxy_pass http://old_site_backend;# 旧站的后端地址
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
}

#### 2. Apache 配置示例

如果你使用的是 Apache,可以通过 `.htaccess` 文件来实现:

RewriteEngine On

# 旧站链接重定向到 old.xx.com
RewriteCond %{REQUEST_URI} ^/thread-1-1-1.html$
RewriteRule ^(.*)$ http://old.xx.com/$1

# 其他请求正常访问新站
RewriteCond %{REQUEST_URI} !^/thread-1-1-1.html$
RewriteRule ^(.*)$ http://new_site_backend/$1

### 解释

- **Nginx 配置**:
- 第一个 `server` 块处理 `www.xx.com` 的请求。
- `location ~ ^/thread-1-1-1.html$` 匹配旧站的特定链接,并将其重定向到 `old.xx.com`。
- 其他请求则通过 `proxy_pass` 转发到新站的后端。

- **Apache 配置**:
- `RewriteCond` 和 `RewriteRule` 用于匹配旧站的特定链接,并将其重定向到 `old.xx.com`。
- 其他请求则通过 `P` 标志(代理)转发到新站的后端。

### 注意事项

1. **正则表达式**:你需要根据实际情况调整正则表达式,确保只匹配旧站的特定链接。
2. **缓存**:在测试时,确保清除浏览器缓存或使用无痕模式,以避免缓存影响测试结果。
3. **测试**:在生产环境应用之前,建议在测试环境中充分测试,确保重定向逻辑正确无误。

通过这种方式,你可以实现旧站链接的 301 重定向,同时确保新站的链接能够正常访问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 【百度 bug?】旧站收录的域名,绑定新站,换站逻辑错误?