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

如何用.htaccess将app-domain.com下域名路径(含参数)重写为对应独立域名?

解决.htaccess域名重写与多用户域名指向问题

一、实现app-domain.com/example.com到example.com的重定向(含参数保留)

要实现你需要的URL重定向并避免500错误,可使用以下规则:

# 匹配app-domain.com下的域名路径,重定向到对应独立域名
RewriteCond %{HTTP_HOST} ^(www\.)?app-domain\.com$ [NC]
# 捕获路径中的域名部分(比如example.com),并重定向,保留查询参数
RewriteRule ^([a-z0-9.-]+)$ http://$1/%{QUERY_STRING} [R=302,L,QSA]

规则说明:

  • RewriteCond:限定规则仅作用于app-domain.com(含www前缀)的请求。
  • RewriteRule中的^([a-z0-9.-]+)$:捕获路径中符合域名格式的字符串(比如example.com),作为$1变量使用。
  • [R=302,L,QSA]:R=302为临时重定向(正式环境可改为R=301永久重定向);L表示这是最后一条规则,停止后续匹配;QSA自动保留原URL的查询参数(比如?page=podcast会被附加到目标URL)。

该规则可实现:

  • app-domain.com/example.com → example.com
  • http://app-domain.com/example.com?page=podcast → http://example.com/?page=podcast

二、处理用户自有域名指向服务器的内部匹配

当用户将自有域名(比如example.com)指向你的应用服务器后,需让服务器匹配到app-domain.com/example.com对应的用户页面,可添加以下内部重写规则:

# 当请求主机不是app-domain.com时,内部重写到对应路径
RewriteCond %{HTTP_HOST} !^(www\.)?app-domain\.com$ [NC]
# 将当前域名作为路径,内部转发到app-domain的对应用户页面
RewriteRule ^(.*)$ /%{HTTP_HOST}/$1 [L]

规则说明:

  • RewriteCond:排除app-domain.com本身的请求,仅处理用户自有域名的访问。
  • RewriteRule:将当前请求的路径(比如/?page=podcast)附加到/%{HTTP_HOST}/之后,内部转发到应用的用户专属页面逻辑。

三、你之前规则导致500错误的原因

你提供的规则存在两个核心问题:

  1. 匹配范围错误:RewriteRule ^/?$仅匹配根路径(app-domain.com/),完全没覆盖app-domain.com/example.com这类路径请求。
  2. 目标URL格式错误:目标http://example.com/?page=podcast/末尾的斜杠多余,且硬编码了固定域名和参数,无法适配多用户场景,同时可能引发URL解析错误导致服务器500。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:20:31