Как перенаправить несколько доменов в разные подкаталоги с помощью Apache - PullRequest
4 голосов
/ 19 октября 2011

Я хочу перенаправить несколько доменов в разные подкаталоги. Например:

Если посетитель использует домен www.cookie.com, который имеет HTTP-перенаправление на www.mainme.com, то когда посетитель попадает туда, Apache обнаруживает домен и перенаправляет его на mainme.com/cookie

.

То же самое для puppy.com. Если он получает HTTP, перенаправленный на mainme.com, когда пользователь попадает туда, он перенаправляется на mainme.com/puppy

.

Можно ли это сделать в .htaccess?

Использование Linux в качестве сервера с / var / www в качестве веб-папки.

Сейчас не пользуюсь Virtualhost, но учусь тому, как это делать.

Ответы [ 2 ]

5 голосов
/ 19 октября 2011

Я действительно не знаю, что вы подразумеваете под

, который пересылается на www.mainme.com

Если он перенаправлен с HTTP-перенаправлением, вам нужно изменить это перенаправление в соответствии с вашими потребностями (поэтому присоедините /cookie или /puppy в конце).

Если ваши домены совместно используют один и тот же корень документа, вам нужно поместить этот код в ваш .htacces:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?cookie\.com$
RewriteRule ^(.*)$ http://www.mainme.com/cookie? [R,L]
RewriteCond %{HTTP_HOST} ^(www\.)?puppy\.com$
RewriteRule ^(.*)$ http://www.mainme.com/puppy? [R,L]

EDIT: Таким образом, вы можете использовать http-referer в качестве подсказки, откуда пришел пользователь. Попробуйте это:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http[s]?://(www\.)?cookie\.com(.*)?$
RewriteRule ^(.*)$ http[s]?://www.mainme.com/cookie? [R,L]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?puppy\.com(.*)?$
RewriteRule ^(.*)$ http://www.mainme.com/puppy? [R,L]
0 голосов
/ 20 октября 2011

Надеюсь, я вас правильно понял, но если под "переадресацией" вы подразумеваете перенаправление HTTP, то остальная часть того, что вы говорите, не будет работать.Apache не сможет обнаружить домен, если вы уже отбросили эту информацию, перенаправив все на сайт www.mainme.com.(Реферер HTTP ненадежен, потому что его можно отключить (он у меня отключен), но я не уверен, что его значение с перенаправлениями - это то, что вам нужно для этого, или если оно совместимо во всех браузерах.)

Я не уверен, что вы подразумеваете под "сказать продавцу домена".Это люди или просто сами редактируете настройки в панели управления вашего регистратора?Но я думаю, в любом случае, если вы можете сказать им, чтобы они делали одно, вы можете сказать им, чтобы они делали что-то другое, поэтому:

Самым простым решением, вероятно, является просто перенаправление на разные URL-адреса, а не на все те же URL-адреса.Т.е. прямо на www.mainme.com/sitename.Или, если вы можете переадресовывать только доменное имя, а не полный URL-адрес, создайте для каждого домена поддомен: sitename.mainme.com, который затем может быть перенаправлен во второй раз, если вы хотите получить его на www.mainme.com/sitename.

Другой способ сделать это - установить IP-адрес каждого домена на свой сервер mainme.com и просто разместить их все как обычные виртуальные хосты.Они могут перенаправить, если хотите, но вы также можете просто обслуживать контент прямо с cookie / puppy / etc.com.

...