配置复杂自定义.htaccess重定向规则的技术求助
配置跨域名文件夹重定向的解决方案
针对将https://olddomain.com/folder/uploads及其子路径重定向到https://newdomain.com/launch/folder/uploads对应路径的需求,以下是几种常见环境下的可行配置:
Apache(.htaccess)
确保服务器已启用mod_rewrite模块,在olddomain的根目录或folder/uploads目录下创建/编辑.htaccess文件,添加以下规则:
RewriteEngine On # 仅针对olddomain的请求触发重定向 RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC] # 匹配/folder/uploads/及后续所有路径 RewriteRule ^folder/uploads/(.*)$ https://newdomain.com/launch/folder/uploads/$1 [R=301,L]
R=301表示永久重定向(利于SEO),临时测试可改为R=302L表示终止后续规则匹配,避免冲突[NC]表示忽略域名大小写
Nginx
在olddomain对应的server配置块中添加以下rewrite规则:
server { listen 80; listen 443 ssl; server_name olddomain.com; # 重定向规则 rewrite ^/folder/uploads/(.*)$ https://newdomain.com/launch/folder/uploads/$1 permanent; }
permanent对应301永久重定向,临时重定向用redirect- 配置后重启Nginx生效:
sudo systemctl restart nginx
Cloudflare页面规则(若使用Cloudflare托管域名)
- 登录Cloudflare控制台,进入olddomain的管理页面
- 进入「规则」→「页面规则」,点击「创建页面规则」
- 匹配URL:填写
olddomain.com/folder/uploads/* - 设置:选择「转发URL」,跳转类型选「永久重定向(301)」或「临时重定向(302)」,目标URL填写
https://newdomain.com/launch/folder/uploads/$1 - 保存规则并等待生效
注意事项
- 若两个域名指向同一站点根目录,务必通过
HTTP_HOST(Apache)或server_name(Nginx)限制重定向触发条件,避免循环重定向 - 测试时建议先用302临时重定向,确认规则生效后再改为301永久重定向
内容的提问来源于stack exchange,提问作者trulygood
相关产品推荐
相关产品推荐

