PHPでリダイレクトを作成するには?



Answers

function Redirect($url, $permanent = false)
{
    if (headers_sent() === false)
    {
        header('Location: ' . $url, true, ($permanent === true) ? 301 : 302);
    }

    exit();
}

Redirect('http://www.google.com/', false);

死ぬことを忘れないでください()/ exit()!

Question

PHPを使用してユーザーを別のページにリダイレクトすることは可能ですか?

ユーザーがwww.example.com/page.phpwww.example.com/page.php / www.example.com/page.phpにリダイレクトしたいとしたら、メタリフレッシュを使用せずにどうすればよいですか? 可能?

これにより、権限のないユーザーからページを保護することさえできます。




セマンティックウェブの前夜には、正しさは考慮すべきものです。 残念なことに、PHPの "Location"ヘッダーはHTTP 302 -redirectコードを使用していますが、厳密にはリダイレクトには最適ではありません。 代わりに使用すべきものは303です。

W3Cは、303ヘッダーが「HTTP / 1.1より前の多くのユーザーエージェント」と互換性がなく、現在使用中のブラウザーにはならないと言えるほど親切です。 したがって、302は遺物であり、使用すべきではありません

...またはあなたは他のみんなと同じように無視することができます...




あなたは、リダイレクトを行うためにPHPのヘッダー関数を使用しようとすることができます。 あなたのブラウザが画面にリダイレクト警告を投げないように出力バッファを設定したいと思うでしょう。

ob_start();
header("Location: ".$website);
ob_end_flush();



これらの回答の多くは正しいものですが、絶対URLがないと思われます。 相対URLを使用して残りの部分を生成する場合は、次のようなことができます。

$url = 'http://' . $_SERVER['HTTP_HOST'];            // Get the server
$url .= rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); // Get the current directory
$url .= '/your-relative/path-goes/here/';            // <-- Your relative path
header('Location: ' . $url, true, 302);              // Use either 301 or 302



<?php
$url = "targetpage"
Function redirect$url(){
   If (headers_sent()) == false{
      Echo '<script>window.location.href="' . $url . '";</script>';
}}
?>



我々は2つの方法で行うことができます

  1. ユーザーがhttps://bskud.com/PINCODE/BIHAR/index.php来ると、 https://bskud.com/PINCODE/BIHAR/index.phpにリダイレクトされhttps://bskud.com/PINCODE/BIHAR.php

下のPHPコード

<?php header("Location: https://bskud.com/PINCODE/BIHAR.php"); exit; ?>

上記のコードをhttps://bskud.com/PINCODE/BIHAR/index.php保存してhttps://bskud.com/PINCODE/BIHAR/index.php

2.条件が真であれば、他のページにリダイレクトする

<?php  $myVar = "bskud";   if ($myVar == "bskud") { ?>  <script> window.location.href="https://bskud.com";  </script> <?php  } else {  echo "<b>Check Website Name Again</b>"; } ?>

`




<?php 
header('Location: redirectpage.php');
header('Location: redirectpage.php');exit();
echo "<script>location.href='redirectpage.php';</script>";
?>

これは通常のPHPリダイレクトですが、コードの下に数秒待ってページをリダイレクトすることができます:

<?php
header('refresh:5;url=redirectpage.php '); //Note: here 5 means 5 seconds wait for redirect.
?>



はい、PHPを使用することは可能ですが、別のページにリダイレクトして、これを試してみてください:

<?php
header("location:./");//redirect to index file
header("location:index.php");//redirect to index file
header("location:example.php");
?>



header()関数を使用してHTTP Locationヘッダを送信する

header('Location: '.$newURL);

これとは逆に、 die()はリダイレクションとは何の関係もありません。 通常の実行の代わりにリダイレクトする場合にのみ使用してください。

example.php:

<?php 
header('Location: static.html');
$fh = fopen('/tmp/track.txt','a');
fwrite($fh, $_SERVER['REMOTE_ADDR'].' '.date('c')."\n");
fclose($fh);
?>

結果または3回の実行:

bart@hal9k:~> cat /tmp/track.txt
127.0.0.1 2009-04-21T09:50:02+02:00
127.0.0.1 2009-04-21T09:50:05+02:00
127.0.0.1 2009-04-21T09:50:08+02:00

Resuming - obligatory die() / exit()は実際のPHPとは何の関係もない都市の伝説です。 クライアントはLocation:ヘッダーを "尊重"することとは関係がありません。 ヘッダを送信しても、使用するクライアントにかかわらず、PHPの実行は停止しません。




はい、あなたはheader()関数を使うことができますが、

header("Location: http://www.yourwebsite.com/user.php"); /* Redirect browser */
exit();

また、コードの実行を避けるため、 header()関数の直後にexit()関数を呼び出すことをお勧めします。

ドキュメントによると、実際の出力が送信される前にheader()呼び出さなければなりません。




これらの答えのほとんどは非常に重要なステップを忘れています!

header("Location: myOtherPage.php");
die();

その重要なセカンドラインを外に出すと、あなたはthedailywtf.com/Articles/WellIntentioned-Destruction.aspx終わるかもしれない。 問題は、ブラウザがあなたのページが返すヘッダを尊重する必要がないことです。したがって、ヘッダが無視されると、ページの残りの部分はリダイレクトなしで実行されます。




header( 'Location: http://www.yoursite.com/new_page.html' );




以下のようないくつかのJavaスクリプトメソッドを使用することができます

 1)self.location="http://www.example.com/index.php";

 2)window.location.href="http://www.example.com/index.php";

 3)document.location.href = 'http://www.example.com/index.php';  

 4)window.location.replace("http://www.example.com/index.php");



Related



Tags

php php   redirect