You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多域名拆分展示博客分类内容及分页跳转控制的技术实现问询

实现独立域名展示特定分类的方案

当然可以搞定!你需要结合URL重写规则和后端脚本的小调整,既能让website-two.com只展示cooking分类,又能保证分页时不会跳回主站。下面分服务器配置和后端处理两部分详细说明:

一、URL重写配置(分Nginx/Apache)

1. Nginx 配置

在website-two.com的server块中添加以下规则,将请求代理到主站的后台脚本,同时固定分类为cooking:

server {
    listen 80;
    server_name website-two.com;

    location /blog/cooking {
        # 处理根路径(如website-two.com/blog/cooking),自动跳转到第1页,保持URL格式统一
        if ($request_uri = /blog/cooking) {
            return 301 /blog/cooking/1;
        }

        # 处理分页请求,比如website-two.com/blog/cooking/2,转发到主站的category.php
        rewrite ^/blog/cooking/(\d+)$ http://website-one.com/blog/category.php?name=cooking&page=$1 last;
    }
}

这个规则会让用户在website-two.com看到的始终是/blog/cooking/页码的格式,实际请求则转发到主站的后台处理。

2. Apache 配置

在website-two.com的根目录创建.htaccess文件,添加以下规则(需确保Apache启用了mod_rewrite、mod_proxy和mod_proxy_http模块):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^website-two.com$
# 根路径跳转到第1页
RewriteRule ^blog/cooking$ /blog/cooking/1 [R=301,L]
# 代理分页请求到主站,用户看不到真实的主站URL
RewriteRule ^blog/cooking/(\d+)$ http://website-one.com/blog/category.php?name=cooking&page=$1 [P,L]

其中[P]标记表示使用代理转发,用户浏览器地址栏会保持website-two.com的域名,不会跳转到主站。

二、后端脚本调整(解决分页跳转问题)

核心是分页链接的生成要根据当前访问的域名动态调整,不能硬编码主站域名。以你的category.php为例,修改分页链接的生成逻辑:

// 获取当前用户访问的域名
$current_host = $_SERVER['HTTP_HOST'];
// 当前分类(website-two固定为cooking,主站则为传入的name参数)
$current_category = $_GET['name'];
// 当前页码,默认第1页
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
// 计算下一页页码
$next_page = $current_page + 1;

// 动态生成分页链接
if ($current_host === 'website-two.com') {
    // website-two的链接格式:固定cooking分类
    $next_page_url = "https://$current_host/blog/cooking/$next_page";
} else {
    // 主站的原有链接格式:对应分类+页码
    $next_page_url = "https://$current_host/blog/$current_category/$next_page";
}

之后在输出分页按钮时,使用$next_page_url作为链接的href属性。这样用户在website-two.com点击下一页时,会跳转到website-two.com/blog/cooking/2,而不是主站的URL。

如果你的博客系统有全局的URL生成函数,建议直接在这个函数里统一添加域名判断逻辑,这样所有分页、分类相关的链接都会自动适配当前访问的域名,不用逐个页面修改。

三、额外注意事项

  • 确保主站website-one.com的后台脚本允许来自website-two.com的请求,避免跨域问题(可以在PHP中添加header("Access-Control-Allow-Origin: https://website-two.com");,或者直接通过域名逻辑判断放行)。
  • 可以在website-two.com的重写规则中添加缓存配置,提升页面加载速度。
  • 测试时务必验证分页跳转:从第1页点击到第2页,检查地址栏是否始终保持website-two.com的域名。

内容的提问来源于stack exchange,提问作者Wayne Six

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:24:19