Возможно ли скрытое перенаправление 307 для домена?
Меня попросили создать перенаправление 307 для домена, убедившись, что он "замаскирован". т. Е. Сохраните исходный URL-адрес в адресной строке.
О перенаправлениях 307 (в отличие от 301/302) доступно не так много информации, но из моих исследований кажется, что 307 перенаправлений похожи на 302 перенаправления.
У меня такое чувство, что то, что меня попросили сделать, невозможно, и на данный момент я создал iframe, который загружает его бесплатный веб-сайт.
Прежде чем я буду выглядеть идиотом и вернусь к нему, и скажу ему, что iFrames - единственный способ сохранить URL-адрес в адресной строке, может кто-нибудь подтвердить это.
В качестве альтернативы, скажите мне, как создать перенаправление 307. Я предполагаю, что это что-то вроде этого.... Но как это можно замаскировать?
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=307,L]
2 answers
Перенаправление в маске 307 невозможно. Вы можете либо перенаправить, либо замаскировать, но не то и другое вместе. Код, который вы опубликовали в своем вопросе, приведет к перенаправлению, если это то решение, которое вы хотите, но я не понимаю, зачем вам перенаправление 307, которое просто сообщает браузеру, что он не может переключаться между методом GET/POST. Наилучшей/распространенной практикой является использование 301 для постоянных перенаправлений и 302 для временных перенаправлений, если только это не может быть использовано на URL-адресе, где ожидается публикация данных. Перенаправление 307 само по себе не будет применять никакой маскировки - заголовок перенаправления, будь то 301, 302 или 307, изменит адрес браузера.
В то время как большинство маскировок веб-сайтов настраивается и управляется с помощью панелей управления хостингом или доменными именами, а не людьми, которые сами пишут для них исходный код, сегодня чаще всего используются старые теги набора фреймов HTML4, которые по-прежнему поддерживают все основные браузеры:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<frameset rows="100%">
<frame src="http://www.masked-domain.com/" />
</frameset>
</html>
Для маскировки с помощью прокси-запросов вы можете использовать PHP-код, подобный этому в index.php:
<?php
$sOldURL = sprintf( 'http://www.masked-domain.com/%s', $_SERVER['REQUEST_URI'] );
echo( @file_get_contents( $sOldURL ));
exit;
, А затем перенаправлять все запросы на этот index.php файл с использованием файла .htaccess:
RewriteEngine On
RewriteRule ^(.*)$ /index.php/$1 [L]
Невозможно внешне перенаправить (статус 3xx) и замаскировать запрос (т.Е. сохраните исходный URL-адрес в адресной строке). Для конечного пользователя "замаскированный" URL-адрес выглядит как обычный (200 ОК) запрос. Ответ 3xx - это не так.
IFRAMES - единственный способ сохранить URL-адрес в адресной строке
Однако iframes не обязательно являются единственным способом маскировки URL-адреса. Предполагая, что это междоменный запрос, тогда запрос может быть проксированный?
...его бесплатный веб-сайт.
Что ж, в этом случае iframe вполне может быть единственным способом справиться с этим!
Часть меня думает, что в этом должно быть что-то еще? Откуда вы хотите "перенаправить" ?