You need to enable JavaScript to run this app. mod_rewrite更换域名时旧域名被追加到新URL错误问题求助
优惠活动
大模型
产品
解决方案
定价
更多

mod_rewrite更换域名时旧域名被追加到新URL错误问题求助

问题原因

你所有跨域名重写的规则都存在同一个核心错误:RewriteRule 的匹配对象仅包含域名之后的路径部分,不会匹配到HTTP_HOST(即域名)内容。
比如请求 http://printingupload.com/files-submited/xxx 时,RewriteRule 拿到的待匹配内容只有 files-submited/xxx,你写的 ^printingupload\.com/files-submited\/(.*)$ 规则永远无法命中请求,逻辑异常后就会把完整旧域名当成路径拼接到新URL后。

修正方案

删掉所有 RewriteRule 里多余的域名前缀,仅保留路径部分的匹配规则即可,同时建议为跨域名的重定向规则加上 R=301(永久重定向)或 R=302(临时重定向)标识,避免内部重写逻辑异常。

修正后的完整.htaccess配置

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php74” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php74 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

RewriteEngine On

#### PrintNinja unique redirects
RewriteCond %{HTTP_HOST} ^printninja.com$ [NC]    
RewriteRule ^learn/(.*) /printing-resource-center/ [NC,L,R=301]
RewriteRule ^digital-downloads/(.*) /printing-resource-center/ [NC,L,R=301]
RewriteRule ^resources/(.*) /printing-resource-center/ [NC,L,R=301]
RewriteRule ^pricing\/(.*)$ https://printninja.com/calculator/$1 [L,R=301]

#### Begin Uploader rewrites
# printingupload.com/files-submited/*   --redirect to ->   https://printninja.com/calculator/files-submited/*
RewriteCond %{HTTP_HOST} ^(www\.)?printingupload\.com$ [NC]
RewriteRule ^files-submited\/(.*)$ https://printninja.com/calculator/files-submited/$1 [L,R=301]
# printingupload.com/invalid-order/*   --redirect to ->  https://printninja.com/calculator/invalid-order/*
RewriteCond %{HTTP_HOST} ^(www\.)?printingupload\.com$ [NC]
RewriteRule ^invalid-order\/(.*)$ https://printninja.com/calculator/invalid-order/$1 [L,R=301]
# printingupload.com/*   --redirect to ->   https://printninja.com/calculator/products/upload_proofing/* (this rule must appear after the other printingupload.com/* rules)
RewriteCond %{HTTP_HOST} ^(www\.)?printingupload\.com$ [NC]
RewriteRule ^(.*)$ https://printninja.com/calculator/products/upload_proofing/$1 [L,R=301]
# submit.printingupload.com/*   --redirect to ->   https://printninja.com/calculator/submit_proofing/*
RewriteCond %{HTTP_HOST} ^submit\.printingupload\.com$ [NC]
RewriteRule ^(.*)$ http://printninja.com/calculator/submit_proofing/$1 [L,R=301]
# proofs.printingupload.com/approved/*   --redirect to ->   https://printninja.com/calculator/status/approved/*
RewriteCond %{HTTP_HOST} ^proofs\.printingupload\.com$ [NC]
RewriteRule ^approved\/(.*)$ https://printninja.com/calculator/status/approved/$1 [L,R=301]
# proofs.printingupload.com/rejected/*   --redirect to ->   http://staging.printninja.com/calculator/status/rejected/*
RewriteCond %{HTTP_HOST} ^proofs\.printingupload\.com$ [NC]
RewriteRule ^rejected\/(.*)$ https://printninja.com/calculator/status/rejected/$1 [L,R=301]
# proofs.printingupload.com/*   --redirect to ->   http://staging.printninja.com/calculator/rackfile/*
RewriteCond %{HTTP_HOST} ^proofs\.printingupload\.com$ [NC]
RewriteRule ^(.*)$ https://printninja.com/calculator/rackfile/$1 [L,R=301]

你最初测试的abc.def.com规则修正版

RewriteCond %{HTTP_HOST} ^abc\.def\.com$ [NC]
RewriteRule ^(.*)$ https://efg.com/dd/as/$1 [L,R=301]

修改后请求 http://abc.def.com/123123132/abcvalue 会正常跳转到 https://efg.com/dd/as/123123132/abcvalue,不会再拼接旧域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 09:45:08