Несколько доменов для отображения контента с целевых страниц в другом домене

Мы создали несколько целевых страниц в системе CMS Joomla, так что URL-адрес каждой целевой страницы имеет вид www.domain.com/page1.html и www.domain.com/page2.html и так далее. Конечно, page1.html на самом деле не является файлом HTML, это динамическая страница CMS, просто переписанная с помощью htaccess.

Цель состоит в том, чтобы один из наших других доменов, что-то вроде www.uniquedomain1.com, отображал содержимое www.domain.com/page1.html. Или другой домен, такой как www.uniquedomain2.html, показывает содержимое www.domain.com/page2.html.

Это должно быть удобно для поисковых систем, чтобы мы не могли использовать маскировку URL. Также мы не можем использовать перенаправления HTACCESS, так как это фактически изменяет URL-адрес в строке браузера. Необходимо сохранить URL-адрес www.uniquedomain1.com в строке браузера.

Пробовал варианты Apache VirtualHost безуспешно. Вы можете припарковаться в каталоге, но не по URL-адресу.

Закончилось парковкой доменов в одной папке, а затем созданием PHP-скрипта для обнаружения хоста домена, а затем использованием CURL для запроса правильного URL-адреса и доставки контента. Все это кажется смехотворно сложным, и, конечно, CURL — не лучший вариант, но это все, что мы могли сделать для работы.

Любые мысли о том, как это сделать, или лучшее решение?


person Zach S    schedule 01.05.2013    source источник


Ответы (2)


Вы можете использовать правила перенаправления HTACCESS, чтобы сделать это без выполнения перенаправления.

Измените имена файлов html на доменное имя нужного домена, например domain.tld, и сделайте что-то подобное в файле .htaccess.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?:www\.)?([a-z0-9\.-]+\.[a-z]+) [NC]
RewriteRule ^$ /%1.html [L]

Быстрая проверка этого сработала для двух моих тестовых (суб)доменов test.domain.tld и test2.domain.tld. Оба правильно перенаправлены на файлы с именами test.domain.tld.html и test2.domain.tld.html без изменения URL-адреса.

person Ding    schedule 01.05.2013

Вы также можете просто использовать свой PHP-скрипт-оболочку, чтобы захватить содержимое каждого из различных html-файлов и вывести их.

Если вы переименовали все свои файлы HTML (как в моем предыдущем предложенном ответе) в domain.tld.html, вы могли бы сделать это довольно легко. Что-то может выглядеть так:

<?php

require($_SERVER['SERVER_NAME'] .'.html');
person Ding    schedule 01.05.2013
comment
Поправьте меня, если я ошибаюсь, но я считаю, что php require должен быть физическим файлом. Эти страницы не являются настоящими файлами HTML, это просто динамические страницы, загруженные из CMS. .html вводит в заблуждение, это просто mod_rewrite. - person Zach S; 01.05.2013
comment
Да, это не сработает. Я неправильно понял, что он генерируется моей cms - person Ding; 01.05.2013