web-dev-qa-db-ja.com

ドメインのマスク307リダイレクトは可能ですか?

ドメインに対して307リダイレクトを作成し、「マスク」されていることを確認するように求められました。つまり、アドレスバーに元のURLを保持します。

307(301/302とは対照的に)リダイレクトに関する情報はあまりありませんが、私の調査では、307リダイレクトは302リダイレクトに似ているようです。

私は頼まれたことは不可能だと感じており、今のところ彼の無料ホストWebサイトをロードするiframeを作成しました。

バカを見て彼に戻り、アドレスバーにURLを保持する唯一の方法はiFrameであると伝える前に、誰かがこれを確認できますか。

または、307リダイレクトを作成する方法を教えてください。私はそれがこのようなものだと思います....しかし、どのようにそれを隠すことができますか?

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=307,L] 
6
Rob

マスク307リダイレクトは使用できません。リダイレクトまたはマスクできますが、両方を同時に使用することはできません。あなたが質問に投稿したコードは、あなたが望む解決策であればリダイレクトを達成しますが、なぜ307リダイレクトを必要とするのか理解していません。ブラウザにGET/POSTメソッドを切り替えることができないことを伝えるだけです。 POSTデータが予想されるURLで使用される可能性がある場合を除き、永続的なリダイレクトの場合は301、一時的なリダイレクトの場合は302に固執するのがベスト/一般的な方法です。 307リダイレクト自体はマスキングを適用しません。301、302、307のいずれのリダイレクトヘッダーでもブラウザのアドレスが変更されます。

ほとんどのWebサイトマスキングは、ソースコードを自分で作成するのではなく、ホスティングまたはドメイン名コントロールパネルを使用して設定および管理されますが、今日最もよく使用される方法は、すべての主要なブラウザーがまだサポートしている古い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>

リクエストをプロキシすることでマスクするには、index.phpでこれに似たPHPコードを使用できます。

<?php
$sOldURL = sprintf( 'http://www.masked-domain.com/%s', $_SERVER['REQUEST_URI'] );
echo( @file_get_contents( $sOldURL ));
exit;

そして。htaccessファイルを使用して、すべてのリクエストをindex.phpファイルにリダイレクトします。

RewriteEngine On
RewriteRule ^(.*)$ /index.php/$1 [L]
2
richhallstoke

外部リダイレクト(3xxステータス)およびリクエストをマスクする(つまり、元のURLをアドレスバーに保持する)ことは不可能です。エンドユーザーにとって、「マスクされた」URLは通常の(200 OK)要求のように見えます。 3xx応答はそうではありません。

iFrameは、アドレスバーにURLを保持する唯一の方法です

ただし、iframeは必ずしもURLをマスクする唯一の方法ではありません。これがクロスドメインリクエストであると仮定すると、リクエストはプロキシ

...彼の無料ホストWebサイト。

この場合、iframeがこれを処理する唯一の方法である可能性があります。


私の一部は、これに何か他のものがあるに違いないと思う?どこに「リダイレクト」したいのですか?from

2
MrWhite