我最近为运行的版本控制服务器切换到了新域名。通常使用 URL 中包含的用户名来访问服务器,例如。我想将对旧域名的请求重定向到新域名,并保留 URL 中的其他所有内容(包括用户名)。因此,以前的 URL 将被重定向到。目前,我有以下重写条件和规则:https://[email protected]/some/stuff
https://[email protected]/some/stuff
RewriteCond %{HTTP_HOST} sub\.olddomain\.com
RewriteRule (.*) https://sub.newdomain.net$1 [R=301,L]
除了删除userinfo
URL 部分外,此方法有效。有什么方法可以保留用户信息吗?
答案1
从服务器的角度来看,用户信息不是 URL 的一部分。当您请求带有用户名的 URL 时,您的浏览器将设置授权标头。但是,用户名在变量中可供重写规则使用%{REMOTE_USER}
。
因此你可以尝试类似这样的方法:
RewriteCond %{HTTP_HOST} sub\.olddomain\.com
RewriteRule (.*) https://%{REMOTE_USER}@sub.newdomain.net$1 [R=301,L]
但是用户必须在新服务器上重新进行身份验证。这是没有办法的。