Вопрос или проблема
Как я могу использовать .htaccess
для переписывания страницы на поддомене на страницу на родительском домене? (Например, люди, посещающие mysite.com/landingpage, увидят содержимое из dev.mysite.com/landingpage)?
Я работаю над редизайном сайта WordPress, используя поддомен dev.mysite.com. Сайт пока не готов заменить живой WP сайт (mysite.com), но мне нужно сопоставить одну из страниц со старым доменом и сделать ее публичной. Поскольку вся работа (шаблон, база данных и т.д.) находится на поддомене, я не могу просто импортировать страницу на старый домен, поэтому, по-видимому, мне нужно использовать mod_rewrite
, что сильно превышает мой уровень навыков. Также, так как это две разные установки WP (не мультисайт), использовать ли мне файл .htaccess
домена или поддомена .htaccess
?
Спасибо!
Если вы используете файл .htaccess
на основном домене, когда люди зайдут на страницу, которую вы хотите отображать на поддомене, это изменит ссылку URL на dev.mysite.com
. Я не уверен, что это лучший подход, но если вы хотите сделать так, вам нужно использовать .htaccess
основного домена для перенаправления на поддомен.
Другой вариант заключается в экспорте данных страницы с помощью плагина экспортирования WordPress. Поиск на сайте привел меня к этому плагину, который может быть полезен. https://en-gb.wordpress.org/plugins/wp-exporter/
Вам кажется, что вы говорите о маскировке URL. Пожалуйста, обратитесь здесь и здесь за примерами.
Посетителю example.com/mypage можно показать example.net/mypage, при этом в адресной строке будет отображаться example.com/mypage. Не уверен, как вы будете обрабатывать ссылки с example.net/mypage назад на основной сайт вместо сайта разработки, но это не было частью вопроса.
Ответ или решение
Теория
Перенаправление и маскировка URL с использованием .htaccess
позволяют отображать содержимое из одного домена или поддомена на другом, сохраняя при этом исходный URL в адресной строке браузера. Это особенно полезно, когда необходимо временно показать страницу, разрабатываемую на субдомене, на основном домене. Важно учитывать, что это достигается с помощью модуля Apache mod_rewrite
, который позволяет адаптировать URL-запросы на основе специфических правил.
Пример
Предположим, вы работаете над редизайном сайта и готовите новую страницу на субдомене dev.mysite.com
. Однако, эту страницу нужно сделать доступной через основной домен mysite.com
по адресу /landingpage
. Для этого можно воспользоваться URL-маскировкой, которая помогает сделать контент из поддомена доступным на основном домене.
Пример простого правила в .htaccess
, чтобы переписать URL и перенаправить запросы:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule ^landingpage$ http://dev.mysite.com/landingpage [P]
Этот код проверяет, что запрос поступает к mysite.com
и, если путь равен landingpage
, перенаправляет его на dev.mysite.com/landingpage
. Важно, чтобы на основном сервере был включен ProxyPass
, так как [P]
указывает на проксирование запроса.
Применение
Для реализации данного решения, вам нужно разместить правила в файле .htaccess
основного домена mysite.com
. Это обеспечит корректную работу перенаправления без изменения видимого URL. Однако перенаправление через проксирование может требовать дополнительных настроек сервера и повлиять на скорость загрузки страницы.
Если mod_rewrite
и проксирование чрезмерно сложны, рассмотрите использование экспортной плагина WordPress для переноса только конкретной страницы на основной сайт. Это может быть более подходящим вариантом при ограниченных навыках работы с сервером и большом количестве контента.
Важно помнить о возможных влияниях на SEO и пользователей. Регулярно проверяйте корректность работы всех перенаправлений и не забывайте обновлять ссылки, чтобы они указывали на правильные страницы на основном домене.