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

如何通过.htaccess重定向带相同参数的不同基础URL并保留参数?

嘿,我来帮你搞定这个参数丢失的重定向问题!这种跨域名带参数重定向的坑我之前也踩过,给你几个靠谱的方案,看你用的是哪种服务器:

Apache服务器(使用.htaccess配置)

如果你的旧站点是Apache环境,直接在旧站点的根目录(或者cancelacion.php所在目录)的.htaccess文件里添加以下规则:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^oldsite\.com$ [NC]
RewriteRule ^cancelacion\.php$ http://newsite.com/cancelacion.php?%{QUERY_STRING} [R=301,L]
  • RewriteCond用来匹配旧域名,[NC]表示不区分大小写
  • RewriteRule匹配旧的PHP文件路径,后面的?%{QUERY_STRING}就是关键——它会把旧URL里的所有参数原封不动带到新URL里
  • R=301是永久重定向,如果你只是临时测试可以改成R=302,L表示这是最后一条规则,避免后续规则干扰
Nginx服务器

如果旧站点用的是Nginx,在对应的server配置块里添加这段rewrite规则:

server {
    listen 80;
    server_name oldsite.com;

    location = /cancelacion.php {
        rewrite ^ http://newsite.com/cancelacion.php?$query_string permanent;
    }
}
  • location = /cancelacion.php精准匹配这个文件路径
  • ?$query_string会自动把请求的参数拼接过去,permanent对应301永久重定向,临时的话用redirect
备用方案:直接修改PHP脚本

如果服务器配置没法改,那直接修改旧站点的cancelacion.php文件,用PHP的header函数做跳转:

<?php
// 获取原URL的所有参数
$query = $_SERVER['QUERY_STRING'];
// 跳转到新URL并带上参数
header("Location: http://newsite.com/cancelacion.php?$query", true, 301);
exit;
?>

这个方法最直接,不管服务器环境是什么都能生效,只要确保旧脚本能正常执行就行。

测试的时候记得清一下浏览器缓存,因为301重定向会被浏览器缓存,可能导致你看不到最新的效果哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:01:18