我有一个客户,他有一个类似的域this-site.com
,并且thissite.com
没有深入研究其背后的整个问题,我们需要将任何传入请求重定向到任何*.this-site.com
匹配的*.thissite.com
.
例如:
subdomain1.this-site.com -> subdomain1.thissite.com
subdomain2.this-site.com -> subdomain2.thissite.com
subdomain3.this-site.com -> subdomain3.thissite.com
有没有办法保留 URL 的第一部分并将其传递给第二个域?
假设所有这些子域都解析到文件系统上的同一个位置,然后...重定向
this-site.com
到,thisstite.com
同时保留 URL 的子域和其余部分(即 URL 路径和查询字符串),您可以使用 mod_rewrite 执行以下操作,在.htaccess
您网站根目录中的文件顶部附近:我假设
HTTPS
. 这重定向https://<subdomain>.this-site.com/<url-path>[?<query-string>]
到https://<subdomain>.thissite.com/<url-path>?<query-string>
.这
%1
是对最后匹配的CondPattern中第一个捕获的组的反向引用。换句话说,这与请求的主机名中的子域(([^.]+)
前面的正则表达式中的一部分)匹配。另请注意:
www
.subsubdomain.subdomain1.thissite.com
不会被重定向。this-site.com
。这也是一个临时的 (302) 重定向。如果这是永久性的,则将 302 更改为 301,但前提是您确认它工作正常。(301 被浏览器硬缓存,因此会使测试出现问题。)