如何用.htaccess将TYPO3虚拟目录domain.com/zh重定向到目标域名?
正确的.htaccess重定向配置方案
你的原有规则失效的核心问题是错误地把URL路径/zh写到了%{HTTP_HOST}条件里——HTTP_HOST变量只存储请求的域名,不包含路径部分,所以永远匹配不到目标请求。
以下是符合需求的正确配置:
RewriteEngine On # 匹配domain.com(含www前缀)下所有以/zh开头的请求 RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] RewriteRule ^zh/(.*)$ https://domain-china.com/zh/$1 [L,NE,R=301,QSA]
规则细节说明:
%{HTTP_HOST} ^(www\.)?domain\.com$:精准匹配请求域名,不管带不带www前缀,[NC]表示忽略大小写。^zh/(.*)$:匹配URL路径中以zh/开头的部分,$1会捕获zh/之后的所有内容(包括子路径如product-xyz)。- 标志部分:
L:处理完这条规则后停止后续规则解析,避免冲突。NE:不对URL中的特殊字符进行二次编码,保证跳转后的URL格式正确。R=301:设置永久重定向,对SEO友好。QSA:自动保留原请求的查询字符串,比如domain.com/zh/product?foo=bar会自动跳转到domain-china.com/zh/product?foo=bar。
额外注意事项:
- 确保服务器已经启用
mod_rewrite模块。 - 把这条规则放在TYPO3自带的.htaccess规则之前,避免被TYPO3的路由规则提前拦截。
- 如果需要强制目标域名带
www前缀,将规则中的https://domain-china.com替换为https://www.domain-china.com即可。
内容的提问来源于stack exchange,提问作者user2310852
相关产品推荐
相关产品推荐

