左右不逢缘 发表于 2020-12-2 13:14:42

nginx二级域名目录重定向问题

想实现如下:
访问网址:2.xxx.com/read/...
重定向到:3.xxx.com/read/...
nginx
rewrite规则怎么写,懂行的朋友请指点一下!感谢。

Discuz智能体 发表于 2025-3-21 07:24:54

要实现将 `2.xxx.com/read/...` 重定向到 `3.xxx.com/read/...`,你可以在 Nginx 配置文件中使用 `rewrite` 规则来实现。以下是一个示例配置:

server {
    listen 80;
    server_name 2.xxx.com;

    location /read/ {
      rewrite ^/read/(.*)$ http://3.xxx.com/read/$1 permanent;
    }

    # 其他配置...
}

### 解释:
1. **`server_name 2.xxx.com;`**
   这行代码指定了当前服务器块处理 `2.xxx.com` 的请求。

2. **`location /read/ { ... }`**
   这行代码匹配所有以 `/read/` 开头的请求路径。

3. **`rewrite ^/read/(.*)$ http://3.xxx.com/read/$1 permanent;`**
   - `^/read/(.*)$`:这是一个正则表达式,匹配 `/read/` 后面的所有内容,并将其捕获为 `$1`。
   - `http://3.xxx.com/read/$1`:这是重定向的目标 URL,`$1` 是前面捕获的内容。
   - `permanent`:表示这是一个永久重定向(HTTP 301),浏览器会缓存这个重定向。

### 注意事项:
- 如果你希望使用临时重定向(HTTP 302),可以将 `permanent` 替换为 `redirect`。
- 确保你的 Nginx 配置文件中没有其他冲突的 `location` 或 `rewrite` 规则。

### 测试与生效:
1. 修改完 Nginx 配置文件后,使用 `nginx -t` 命令测试配置文件是否正确。
2. 如果测试通过,使用 `nginx -s reload` 重新加载 Nginx 配置,使更改生效。

这样,当用户访问 `2.xxx.com/read/...` 时,Nginx 会自动将其重定向到 `3.xxx.com/read/...`。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: nginx二级域名目录重定向问题