2012-05-10 18 views
21

これは相対位置 htmlヘッダーはすべてのプラットフォームのすべてのブラウザーと完全に互換性がありますか?どんな基準?ヘッダーの場所相対パスの互換性

Location: some_script.php?la=2&po=2030 

つまり、現在のディレクトリではいつもsome_script.phpにリダイレクトされますか?

+0

PHPがサーバー上で実行されるため、リダイレクトされています。 – 11684

+3

@ 11684:クライアントのブラウザは絶対にLocationヘッダーを受信します。その場所を変更する方法を他にどのように考えていますか? – webbiedave

+1

@ 11684あなたの間違い。 PHPはサーバー上で実行されます。しかし、PHPはブラウザ(クライアント)にヘッダを送り、クライアントはそれを使って何でもします。 –

答えて

17

標準はこのようになります:

header('Location: http://www.mywebsite.com/yourpage.php?id=32', TRUE, 302); 

しかし、あなたが最初のまたは完全なURLにスラッシュを入れない場合は、あなたの質問に答えるために、はい、それは現在のフォルダにページXにリダイレクトされます。

あなたがしているすべてのウェブサイトでやることをお勧めします。お使いのプライマリファイル(あなたが設定または何のように使うメインのPHPファイル)では、そのようなものを作成:

header('Location: '.URL.'yourpage.php?id=32', TRUE, 302); 
:あなたはリダイレクト、リンクまたは何を作成するときに、あなたがこれを行う

define('URL', 'http://www.mywebsite.com/'); 

EDIT:2017年11月。@jordanbtuckerが指摘しているように、HTTPヘッダーは2014年6月に更新されました(この投稿は2012年以降に更新されました)。

+1

はい、私はすでに** relative ** variantとその仕事を使用していますが、それはすべてのユーザーにとってうまくいかないとは思っていません。私は絶対パスを取得するURLの一部を追加することができますが、それは私たちのsome_script.php常にhttp://domain.com/some_script.phpとではないので、ローカルマシンでこのsctiptをdebbuggingするためにいくつかの問題を与えるでしょうSERVER_HOSTをURLに追加する問題ですが、サブフォルダのローカルマシンスクリプトに... – abrahab

+1

OK。それから、私はtotを見てみましょうhttp://tools.ietf.org/html/rfc2616#section-10.3.3。良い方法、最善の方法、それが動作すると思われる方法は、完全なURLを提供する必要があるということです。 –

+0

@abrahabなぜローカルマシンのサブフォルダに完全なURLを持つのが問題なのか分かりませんか? –

2

私は(HTTPにおける単一のスラッシュに注意してください:/アドレス)この質問http:/relative/path officially works?を求め、基準を参照する答えを得た、それはPHPだとして、ブラウザさえヘッダーについて知ることができません、それはそれに気づい