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

配置.htaccess实现多域名反向代理至WordPress实例

解决方案

你的现有配置逻辑错误——当前规则是匹配当前域名下的/berlin/路径进行代理,而不是根据不同的请求域名对应到主站的子路径。以下是正确的配置方案:

1. 修正.htaccess代理规则

将你的.htaccess替换为以下内容,针对不同域名做定向代理:

RewriteEngine On

# 处理 vssp-wp-berlin.de 代理到 vssp-wp.de/berlin/
RewriteCond %{HTTP_HOST} ^vssp-wp-berlin\.de$ [NC]
RewriteRule ^(.*)$ http://vssp-wp.de/berlin/$1 [L,P]
ProxyPassReverse / http://vssp-wp.de/berlin/

# 处理 vssp-wp-bayern.de 代理到 vssp-wp.de/bayern/
RewriteCond %{HTTP_HOST} ^vssp-wp-bayern\.de$ [NC]
RewriteRule ^(.*)$ http://vssp-wp.de/bayern/$1 [L,P]
ProxyPassReverse / http://vssp-wp.de/bayern/

# 主域名 vssp-wp.de 正常访问(可根据需要调整)
RewriteCond %{HTTP_HOST} ^vssp-wp\.de$ [NC]
RewriteRule ^(.*)$ - [L]

配置说明:

  • RewriteCond %{HTTP_HOST} ^域名$:判断当前请求的域名,[NC]表示忽略大小写
  • RewriteRule ^(.*)$ 目标路径/$1 [L,P]:将当前域名下的所有请求,代理到主站对应子路径,[P]启用代理,[L]终止后续规则
  • ProxyPassReverse / 目标路径/:修正代理响应中的URL,确保WordPress生成的链接指向原域名而非主站路径

2. WordPress 后台适配配置

仅靠Apache代理还不够,WordPress会根据自身配置生成链接,需要确保后台输出的URL是原域名:

方法1:修改wp-config.php

在wp-config.php中添加动态判断代码,根据请求域名设置站点URL:

$current_host = $_SERVER['HTTP_HOST'];
switch($current_host) {
    case 'vssp-wp-berlin.de':
        define('WP_SITEURL', 'http://vssp-wp-berlin.de');
        define('WP_HOME', 'http://vssp-wp-berlin.de');
        break;
    case 'vssp-wp-bayern.de':
        define('WP_SITEURL', 'http://vssp-wp-bayern.de');
        define('WP_HOME', 'http://vssp-wp-bayern.de');
        break;
    default:
        define('WP_SITEURL', 'http://vssp-wp.de');
        define('WP_HOME', 'http://vssp-wp.de');
        break;
}

方法2:使用过滤器(推荐)

如果不想修改wp-config.php,可以在主题的functions.php中添加过滤器:

add_filter('site_url', 'custom_proxy_site_url', 10, 3);
add_filter('home_url', 'custom_proxy_home_url', 10, 3);

function custom_proxy_site_url($url, $path, $scheme) {
    $current_host = $_SERVER['HTTP_HOST'];
    if ($current_host === 'vssp-wp-berlin.de') {
        return str_replace('vssp-wp.de', 'vssp-wp-berlin.de', $url);
    } elseif ($current_host === 'vssp-wp-bayern.de') {
        return str_replace('vssp-wp.de', 'vssp-wp-bayern.de', $url);
    }
    return $url;
}

function custom_proxy_home_url($url, $path, $scheme) {
    return custom_proxy_site_url($url, $path, $scheme);
}

3. 验证Apache模块

确保主机商已启用以下Apache模块:

  • mod_rewrite:URL重写必备
  • mod_proxy:代理功能核心
  • mod_proxy_http:HTTP代理支持
    你提到主机商支持原生代理标志,这部分应该已满足,但如果仍有问题可联系主机商确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:38:23