apache 有没有一种方法可以使用重写模块来基于主机头根域进行动态重定向

p4rjhz4m  于 2023-10-23  发布在  Apache
关注(0)|答案(1)|浏览(152)

我有一个客户的规格。给出了一个apache web服务器的重写模块,找到了一种基于主机头根域的动态重定向方法。
例如,如果请求来自www.example1.com,则重定向到example1.customersite.com
同样的事情与多个级别的子域(最多3个),如my.redirect.to.example2.com应重定向到example2.customersite.com
这可以通过重写模块来实现吗?

kiayqfof

kiayqfof1#

我假设这是任何URL路径,这应该通过重定向保留。因此,格式为subdomain.<example>.com/<url-path>的URL将被重定向到<example>.customersite.com/<url-path>
你可以使用mod_rewrite做如下事情:

  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^(?:[^.]+\.){1,3}(example)\.com [NC]
  3. RewriteRule ^ https://%1.customersite.com%{REQUEST_URI} [R=302,L]

HTTP_HOST服务器变量(使用语法%{HTTP_HOST}访问)包含所请求的Host头的值。
这只允许1到3个子域。域顶点(无子域)或超过3个将不会被重定向。
%1反向引用包含前面 condition 中捕获子模式的值。在这种情况下,它只包含字符串“example”,以保存重复。
请注意,这是一个302(临时)重定向。

相关问题