Apache мод переписать доменное имя перенаправить с помощью строки запроса - PullRequest
0 голосов
/ 01 декабря 2009

У нас есть клиент, который имеет много филиалов по всей Великобритании. Некоторые из их филиалов имеют свои сайты с собственными доменными именами. У клиента есть частично построенная система, где посещение:

www.client.com/aboutus.php?id=branchId

показывает страницу О нас для этой конкретной ветви. Что мне нужно, так это способ привязать конкретные домены к их BranchId (в данный момент все это хранится в БД), чтобы

www.client.com/aboutus.php?id=4

отображается на

www.branchid4.com/aboutus.php

Ответы [ 2 ]

1 голос
/ 01 декабря 2009

Это работает для меня. Не уверен, что ваши домены могут работать с одним общим набором правил (т.е. захватить идентификатор, а затем использовать его в rewriterule), в противном случае вам придется повторить последние 3 строки для URL

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]
0 голосов
/ 01 декабря 2009

Вы можете взять важную часть из имени хоста и передать ее в свой скрипт:

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