Как я могу перенаправить на другой домен, не меняя URL-адрес в адресной строке?

Я хочу перенаправить с:

домен1.com/фото

To:

domain2.com/фотографии

Я хочу, чтобы URL-адрес в адресной строке по-прежнему читался:

домен1.com/фото

Есть ли способ сделать это, используя только .htaccess?


Примечание:

Мой файл .htaccess для domain1.com в настоящее время полностью пуст.


person JD Isaacks    schedule 12.06.2009    source источник
comment
Не с .htaccess, а с proxypass можно.   -  person Jeffrey Kemp    schedule 15.06.2009


Ответы (7)


Нет, это невозможно сделать с помощью .htaccess. Это создало бы вопиющую дыру в безопасности — представьте, что кто-то делает это с веб-сайтом банка!

person ceejayoz    schedule 12.06.2009
comment
Да, так как... это просто domain1.com - это бесплатная учетная запись хостинга, которая вставляет баннер вверху каждой страницы... проблема в том, что флекс-приложение работает неправильно... поэтому я пытался разместить flex-приложение в другом месте. - person JD Isaacks; 12.06.2009
comment
Как показывают другие ответы (в частности, user570804), это возможно (хотя вам нужно сделать это на уровне конфигурации выше .htaccess). Это не брешь в системе безопасности (хотя и может помочь людям в проведении фишинговых атак), поэтому пользователи должны проявлять бдительность, проверяя URL-адрес в своей адресной строке при предоставлении информации веб-сайту. - person Quentin; 05.07.2014
comment
@Quentin С точки зрения безопасности, если бы вы могли проксировать с помощью .htaccess (чего вы не можете, поэтому этот ответ остается полностью точным), компрометация .htaccess банка позволила бы вам проксировать всех пользователей банка на сайт злоумышленника, в то время как в адресной строке отображался правильный URL-адрес hte bank. - person ceejayoz; 05.07.2014

Если оба размещены на одном сервере, сделайте это в своем .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^domain1.com$
  RewriteRule (.*)$ http://www.domain2.com$1 [P]
</IfModule>
person DlennartD    schedule 06.03.2014

Если вы владеете и доменом1, и доменом2, вы можете сделать это с помощью переадресации доменного имени. Проверьте варианты у своего регистратора доменных имен (например, godaddy.com).

Нет, через файл htaccess это сделать нельзя.

person Ryan Oberoi    schedule 12.06.2009
comment
Спасибо, но я хочу пересылать только домен/фотографии, а не весь домен. - person JD Isaacks; 12.06.2009

Вы можете открыть iframe в domain1.com/photos, который показывает содержимое domain2.com/photos. Но тогда URL никогда не изменится с domain1.com/photos, даже если вы перейдете на другую страницу в domain2.

Что ты пытаешься сделать? Звучит очень схематично. Вы владеете обоими доменами? Зачем вам дублировать содержимое одного сайта по другому адресу?

person Cameron    schedule 12.06.2009
comment
У меня есть оба домена ... Я описал, почему я хочу это сделать, в ответе ceejayoz. Спасибо. - person JD Isaacks; 12.06.2009

В качестве обходного пути, если страница domain.com/photos является серверным скриптом, выполните http-вызов и ответ сервера.

В ColdFusion:

<cfhttp url="another.domain.com/photos">

<cfoutput>#CFHTTP.FileContent#</cfoutput>

Это будет дополнительный запрос, но он даст вам желаемый результат.

person Adrian Lynch    schedule 12.06.2009
comment
в PHP вы можете быстро использовать readfile: fr.php.net/manual/fr/ function.readfile.php - person instanceof me; 12.06.2009
comment
Однако только если удаленный fopen включен. - person ceejayoz; 12.06.2009

Почему это невозможно? Кажется разумной задачей, если на вашем Apache установлено mod_proxy:

ProxyPass /photos http://domain2.com/photos/

http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypass

person user570804    schedule 14.05.2011
comment
Единственная оговорка — директиву ProxyPass нужно прописать в основной файл конфигурации, на уровне .htaccess это сделать нельзя. - person Quentin; 05.07.2014

это невозможно с помощью файла htaccess.

person Tareq    schedule 11.05.2011