Я не думаю, что это так уж сложно, но мне трудно придумать, как это лучше сделать.
У нас есть сайт site.example.com
с 5 страницами под ним. Допустим, эти 5 страниц — site.othersite.com/page1.html, page2.html, page3.html, page4.html, page5.html
. Теперь у нас также есть 5 других поддоменов, lp1.OTHERSITE.com, lp2.othersite.com, lp3.othersite.com, lp4.othersite.com, lp5.othersite.com
. Все эти домены размещены на одном сервере, в одном корневом каталоге документов. Теперь нам нужно, чтобы Apache сделал прозрачный редирект (то есть адресная строка не меняется) на следующие шаблоны:
lp1.othersite.com --> site.example.com/page1.html
lp2.othersite.com --> site.example.com/page2.html
lp3.othersite.com --> site.example.com/page3.html
lp4.othersite.com --> site.example.com/page4.html
lp5.othersite.com --> site.example.com/page5.html
Возможно ли это с использованием только Apache? Если нет, я уже написал PHP-скрипт для загрузки страниц site.example.com/page*.html в iframe на основе входящего имени хоста, но я не уверен, как сказать Apache отправить эти 5 доменов lp*.othersite.com в этот PHP-скрипт.
Надеюсь, я достаточно хорошо объясняю проект. По сути, нам нужно перенаправить поддомены lp* на разные страницы site.example.com/page*.html, не меняя адрес в адресной строке.
Буду признателен за советы и рекомендации. Все, что я смог сделать, это перенаправить эти URL-адреса в мой PHP-скрипт, но адресная строка изменилась, и поскольку это было перенаправление, адресная строка также изменилась (в этот момент PHP-скрипт не работал, потому что имя хоста изменилось)
решение1
Настройте виртуальный хост для каждого имени хоста, используя тот же DocumentRoot
, но используйте:
DirectoryIndex page1.html
для lp1,
DirectoryIndex page2.html
для lp2 и т. д., чтобы эти страницы использовались как страницы по умолчанию вместо index.html
.
Так, например, http://lp3.othersite.com/
будет обслуживать page3.html
. Он также позволит вам перейти к http://lp3.othersite.com/page1.html
и т. д., но страницей по умолчанию будет то, что вы укажете с помощью DirectoryIndex
директивы.
решение2
Может быть, я что-то упускаю, но мне кажется, вы спрашиваете только о виртуальных хостах.https://httpd.apache.org/docs/2.2/vhosts/
Виртуальный хост требует несколько записей DNS, установленных на одном и том же веб-сервере. Apache обслуживает назначенную страницу на основе используемого имени DNS. Пользователь видит irk, который он набрал, если только вы не перенаправите.
решение3
Вы можете сделать это с помощью URL Rewrite. Просто быстрый импровизированный пример (может сработать, а может и нет):
RewriteCond %{HTTP_HOST} ^lp([0-9]).othersite.com [NC]
RewriteRule ^(.*)$ page$1.html [NC,QSA]
решение4
СледоватьДокументация по виртуальному хосту Apacheдля настройки VirtualHost
каждого полного доменного имени, затем используйтеmod_dirдля установки DirectoryIndex
и для перенаправления используйтеmod_rewrite.
Руководство:
Как создать временные и постоянные перенаправления с помощью Apache и Nginx