Отображение домена с помощью php?

сегодня играюсь с доменами на php,

пример

www.wordpress.com is our main site
www.friend1.com is my new domain
www.friend2.com is my new domain
www.friend3.com is my new domain

to

www.friend1.com the same as www.wordpress.com/profile/friend1 ?
www.friend2.com the same as www.wordpress.com/profile/friend3 ?
www.friend3.com the same as www.wordpress.com/profile/friend2 ?

Как WordPress и другие подобные вещи делают подобные вещи? они делают это на стороне сервера? или есть способ сделать что-то подобное в php?

* отредактируйте, если вы все еще не поняли,

вот пример. скажем, у вас есть идентификатор друга на deviantart по адресу myfrienddeviantartid.devaintart.com, и допустим, вы являетесь администратором на deviantart. вы хотите сделать дополнительный сервис, чтобы ваш друг мог припарковать свой домен на deviantart.com.


person Adam Ramadhan    schedule 04.03.2011    source источник


Ответы (2)


Традиционно это делается с помощью mod_rewrite внутри конфигурации Apache. Он переназначает URL-адреса.

person Jeff    schedule 04.03.2011
comment
да, я тоже об этом думал, но я просто не могу представить, как они будут управлять большим количеством доменов, используя mod_rewrite через apache. - person Adam Ramadhan; 04.03.2011
comment
Что ж, правила настраиваются с использованием регулярных выражений, совместимых с Perl, поэтому вам не нужно определять все возможные сценарии URL. Например, чтобы получить «friend3» с сайта www.friend3.com, вы можете использовать регулярное выражение \.(\w)\. и поместите совпадающий результат в свой новый, переписанный URL-адрес. Регулярное выражение, вероятно, более сложное, и вам, очевидно, придется его протестировать; Но Вы получаете идею. - person Jeff; 05.03.2011
comment
нет, я думал использовать базу данных, сначала я вижу, откуда он идет, если домен находится на domains.url1.com (конфигурация ns правильная), нам просто нужно перенаправить www.url2.com см. на www.url1. com/destination с $_SERVER['HTTP_HOST'], тогда, если он не совпадает с domains.url1.com, он будет перенаправлен на правильный URL-адрес в поле (извлеченный из базы данных) - person Adam Ramadhan; 05.03.2011
comment
это плохо ? или, может быть, мы должны добавить .htacsess, но я не думаю, что это хорошая идея. - person Adam Ramadhan; 05.03.2011

  • Для http-сервера apache используется директива ProxyPassReverse из mod_proxy или директивы из mod_rewrite.

Директива ProxyPassReverse позволяет Apache корректировать URL-адрес в заголовке Location в ответах перенаправления HTTP. Например, это важно, когда Apache используется в качестве обратного прокси-сервера, чтобы избежать обхода обратного прокси-сервера из-за перенаправления HTTP на внутренних серверах, которые остаются за обратным прокси-сервером.

Предположим, локальный сервер имеет адрес http://wibble.org/; потом

ProxyPass /mirror/foo/ http://foo.com/
ProxyPassReverse /mirror/foo/ http://foo.com/

вызовет не только локальный запрос для http://wibble.org/mirror/foo/bar для внутреннего преобразования в прокси-запрос к http://foo.com/bar (функции ProxyPass здесь ). Он также заботится о перенаправлениях, которые отправляет сервер foo.com: когда http://foo.com/bar перенаправляется им на http://foo.com/quux Apache настраивает это на http://wibble.org/mirror/foo/quux, прежде чем перенаправлять ответ перенаправления HTTP клиенту.

  • Для MS(R) IIS используйте модуль Re-Write:

Легко заменяйте URL-адреса веб-приложений для получения результатов, удобных для пользователя и поисковой системы. URL Rewrite позволяет веб-администраторам легко заменять URL-адреса, сгенерированные веб-приложением, в ответном HTML-коде более удобным для пользователя и поисковой системы эквивалентом. Ссылки могут быть изменены в HTML-разметке, созданной веб-приложением за обратным прокси-сервером. Перезапись URL-адресов упрощает перезапись содержимого и заголовков исходящих ответов с помощью правил исходящей перезаписи, которые работают с заголовками HTTP-запросов и ответов, а также с переменными сервера IIS.

Кроме того, вы должны убедиться, что субдомен настроен с помощью поставщика DNS для передачи всех запросов на основной.

Образец записи DNS:

NAME                    TYPE   VALUE
--------------------------------------------------
exampleXYZ.com.         CNAME  example.com.
example.com.            A      192.0.2.23

Ссылка:

  1. https://en.wikipedia.org/wiki/CNAME_record

  2. http://www.akadia.com/services/apache_redirect.html

  3. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

  4. http://www.iis.net/downloads/microsoft/url-rewrite

person Puspendu Banerjee    schedule 08.02.2016