Apache mod使用querystring重写重定向域名

Apache mod使用querystring重写重定向域名,apache,mod-rewrite,query-string,Apache,Mod Rewrite,Query String,我们有一位客户,他在英国各地都有分支机构。他们的一些分支机构有自己的网站和自己的域名。客户有一个部分构建的系统,其中访问: www.client.com/aboutus.php?id=branchId 显示该特定分支的“关于我们”页面。我需要的是一种将特定域映射到其branchId的方法(目前所有这些都存储在一个DB中),以便 映射到 www.branchid4.com/aboutus.php 您可以从主机名中删除关键部分并将其传递给脚本: RewriteEngine on RewriteC

我们有一位客户,他在英国各地都有分支机构。他们的一些分支机构有自己的网站和自己的域名。客户有一个部分构建的系统,其中访问:

www.client.com/aboutus.php?id=branchId
显示该特定分支的“关于我们”页面。我需要的是一种将特定域映射到其branchId的方法(目前所有这些都存储在一个DB中),以便

映射到

www.branchid4.com/aboutus.php

您可以从主机名中删除关键部分并将其传递给脚本:

RewriteEngine on
RewriteCond %{QUERY_STRING} !(^|&)branchName=
RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.com$
RewriteRule .* $0?branchName=%1 [L,QSA]

这对我有用。不确定您的域是否可以使用单个常规规则集(即获取ID,然后在重写规则中使用它),否则您需要在每个URL上重复最后3行

Options +FollowSymLinks 
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www.)?client.com$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /aboutus\.php\?id=4\ HTTP/
RewriteRule ^.*$ http://www.branchid4.com/about.php? [R=301,L]

谢谢莎拉。不确定这是否可以维护,因为我们每个站点可能有8个页面和100多个分支。我还想知道我是否正确地声明了重定向。我希望用户输入:www.branchid4.com/about-us,但是页面实际上是www.client.com/aboutus.php?id=4,这有意义吗?
Options +FollowSymLinks 
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www.)?client.com$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /aboutus\.php\?id=4\ HTTP/
RewriteRule ^.*$ http://www.branchid4.com/about.php? [R=301,L]