2017-01-26 5 views
0

У меня есть несколько сотен доменов, расположенных по разным регистраторам. Для упрощения управления я установил серверы имен для всех из них на один сервис, например, выше (он позволяет вам перенаправлять куда угодно)Переадресовать 100+ доменов в один подкаталог сайта

У меня также есть сайт wordpress на общем хостинге (linux), где каждый домен имеется некоторое содержание, следуя этому URL структуры:

http://example.com/domain1 
http://example.com/domain2 
http://example.com/domain300 

Теперь Я бы хотел, чтобы достигнуть этого, когда кто-то типы в браузере, или это по ссылке:

http:// domain1.com -> should be redirected to http://example.com/domain1 
http:// domain2.com -> should be redirected to http://example.com/domain2 
http:// domain300.com -> should be redirected to http://example.com/domain300 

есть ли способ, чтобы избежать редактировать сотни записей доменов/dns в индивидуальном порядке?

Было бы хорошо, если маскировка возможно:

Если кто-то типы в http://domain1.com он должен быть перенаправлены http:// example.com/domain1 но браузер бар URL по-прежнему показывает http://domain1.com

I'm хорошо при проектировании сайтов, но есть очень очень плохой способ кодирования. Любые шаблоны или готовые решения для этого?

Любая помощь была бы принята с благодарностью.

EDIT:

насчет немного другой маршрут:

если WordPress структура URL будет установка как:

site.com/domain1.de 
site.com/domain2.us 
.. 
site.com/domain300.com 

Является ли это тогда проще просто указать каждый домен site.com, и есть какое-то правило для направления трафика на основе referrer в соответствующий подкаталог/структуру URL?

domain1.de -> gets redirected to site.com/domain1.de 
domain2.us -> gets redirected to site.com/domain2.us 
.. 
domain300.com -> gets redirected to site.com/domain300.com 

UPDATE:

теперь я добавил следующий код в .htaccess в корневой директории WordPress:

# BEGIN Stackexchange hack 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(domain[\d]+\..*)$ 
RewriteRule ^(.*)$ http://example.com/%1 [L,R,QSA] 
</IfModule> 

# END Stackexchange hack 

я не могу заставить его работать .. перенаправлены домены будут отправляться на index = example.com. вместо этого перенаправляется на example.com/domain.de

+0

Самые достойные службы управления DNS будут предлагать API или SDK, которые позволят вам создать простой одноразовый скрипт для пакетного обновления всех 300 записей DNS. Если нет, то вы можете указать «domain1» на определенный IP-адрес, а все остальное указывать на «domain1», поэтому изменение в домене 1 будет распространяться, и вам нужно будет сделать это только один раз (даже если это огромная боль) – apokryfos

+0

Да, спасибо , Я стараюсь избегать ничего сложного (не хочу испортить ... для меня это даже пакетный скрипт). Я немного обновил/отредактировал оригинальный вопрос. Возможно, с такой структурой url возможно более легкое решение. – user1769562

+0

Обновленный исходный вопрос с предлагаемым решением. Но он не может работать. – user1769562

ответ

0

Если кто-то типы в HTTP: // domain1 .com он должен быть перенаправлен на HTTP: // сайт .com/domain1 но браузер бар URL по-прежнему показывает HTTP: // domain1 .com

это невозможное благодаря purpouses безопасности, вы только можете "подражать", установив в domain1.com в IFRAME:

<iframe src="http://example.com/domain1" width="100%" height="100%"></iframe> 

HTTP: // domain1 .com -> должны быть перенаправлены на HTTP: // сайт .com/domain1 http: // domain2 .com -> должен быть перенаправлен на ht tp: // сайт .com/domain2 .. HTTP: // domain300 .com -> должны быть перенаправлены на HTTP: // сайт .com/domain300

Единственный способ я знаю, чтобы сделать это путем создания в каждом домене 301 перенаправление на HTTP: // сайт .com/domainX

+0

Спасибо, что выделили это! Я просто разместил его как above.com (и другие), предлагая перенаправленную пересылку URL-адресов. Теперь я лучше понимаю проблемы – user1769562

1

При настройке в виртуальный хост (при условии) Apache добавить следующее:

ServerName example.com 
ServerAlias domain1.com domain2.com .... domain300.com 

Настройка каждой из областей, которыми вы владеете, чтобы указать на example.com

Ваш .htaccess может быть следующее:

RewriteCond %{HTTP_HOST} ^(domain[\d]+\..*)$ 
RewriteRule ^(.*)$ http://example.com/%1 [L,R,QSA] 

перепишет domainX.com в example.com/domainX

Hard переадресовывает нужно будет сделать из-за изменения в хозяине.

Вы могли попытаться обмануть людей, делая такие вещи, как history.replaceState("domainX.com") в JavaScript, чтобы изменить строку браузера, но тот, кто открывает консоль может видеть сквозь Раус. Это связано с тем, что, если можно было обслуживать контент от malicioussite.com, когда люди думают, что он исходит от example.com, это было бы очень очень непослушным.

+0

Большое спасибо! Вы правы в хитрой/озорной тактике. Не предназначено, поскольку домен -> перейдет на сайт/домен. Но спасибо, что выделили это! – user1769562

+0

Ваше решение также будет работать, если я просто укажу все домены на сайт.com? (нет vhost и т. д.), так как я просто перенаправляю все домены через службу dns на сайт.com – user1769562

+0

@ user1769562 ну, вроде. Вам все равно нужно настроить apache, чтобы знать, как их обслуживать. В противном случае вы получите по умолчанию «Это работает!» сообщение, если вы не заменили его на свой сайт по умолчанию. В последнем случае он должен работать. – apokryfos

Смежные вопросы