JSを使用:(in <head>
タグ)
<script>window.location="https://stackoverflow.com";</script>
sing PHP:(in <head>
タグ)
header('Location: https://stackoverflow.com');
end();
どれを使うべきですか?または別の?
および使用方法について<meta>
?
<meta http-equiv="refresh" content="0;url=https://stackoverflow.com"/>
多くの良い答え、どの答えを受け入れるかわからない、どうもありがとう
結果はすべてのオプションで同じです。リダイレクト。
HTMLの_<meta>
_:
_window.location
_ JSの場合:
if (1 === 1) { window.location.href = 'http://example.com'; }
に依存できます。header('Location:')
PHPの場合:
header()
は、他の出力を行う前に、phpスクリプトの最初のコマンドでなければなりません。ヘッダーの前に出力しようとすると、_Warning: Cannot modify header information - headers already sent
_を受け取りますJSで場所を設定するより良い方法は次のとおりです。
window.location.href = 'https://stackoverflow.com';
PHPまたはJSを使用してリダイレクトを管理するかどうかは、コードの実行内容と方法によって異なります。しかし、PHPを使用する立場にある場合、つまり、 PHPを使用して、ブラウザに別の場所に移動するよう指示するJSコードを送信します。ロジックは、仲介者を切り取ってPHP経由で直接ブラウザに指示することを提案します。
ユーザーを別のページにリダイレクトする方法とタイミングによって異なります。
瞬時にリダイレクト間にサイトの何かを見ないでユーザーを別のページに移動する場合は、PHP header
]リダイレクトメソッドを使用する必要があります。 。
Javascriptがあり、ユーザーの何らかのアクションで別のページに入る必要がある場合は、window.location
。
meta
タグの更新は、これらの「ダウンロードを自動的に開始する必要があります」というメッセージが表示されるたびに、ダウンロードサイトでよく使用されます。ユーザーにページをロードさせることができます一定時間待ってからリダイレクト彼(たとえば、ダウンロードされるファイルに)Javascriptなし。
PHPリダイレクトは、JavaScriptの場合と同じようにリダイレクトの前にクライアントにページをロードさせ、PHPの場合は適切なヘッダーを送信します。
ただし、PHPは<head>に入れないでください。出力がクライアントに送信される前に行く必要があります。そうしないとエラーが発生します。
<meta>タグを使用すると、リダイレクトを実行する前に初期ページが読み込まれるというJavascriptと同じ問題があります。サーバー側のリダイレクトは、使用できる場合、ほぼ常に優れています。
JSがオフの場合、最初のケースは失敗します。また、JSを最初に解析する必要があるため(DOMをロードする必要があるため)、少し遅くなります。ただし、宛先はリファラーを知らず、リダイレクトが追跡される可能性があるため、JSの方が安全です(リファラーは一般的に信頼できませんが、これは何かです) 。
meta refresh タグを使用することもできます。また、DOMをロードする必要があります。