6

何らかの理由でheader("Location")、新しいページでリダイレクトすると、ハッシュが保持されます。

だからあなたがしているならexample.com/index.html#signup

リダイレクトします

header("Location: /account.html");
exit;

しかし、それは示していますexample.com/account.html#signup

なぜこれが起こっているのですか、どうすればそれを止めることができますか?すなわちexample.com/account.html


ノート:

file.htmlにリダイレクトするために.htaccessを使用していますfile.php

RewriteRule ^([a-zA-Z0-9-_.]+)\.html$ $1.php [L]
4

2 に答える 2

5

「どうすれば停止できますか」に対する簡単な答えは、Locationヘッダーに空のハッシュを指定することです。

header('Location: /account.html#');

ただし、この動作は全面的に保証されているわけではありません。私のクイックテストでは、WebKitとIE9で動作するようです。それにもかかわらず、あなたはHTTP仕様のブラックホールに出くわしました。

于 2012-09-14T21:53:51.327 に答える
1

Firefoxで動作する答えを探しています。私の猫がニャーを鳴らし続けている間、あちこちでサーフィンをした後、それは私を最終的な解決策に導きます:

die('<script> window.location='your-url-without-hash';</script>');

ハッシュを予約したい場合もあれば、予約しない場合もあります。また、クロスブラウザーが重要であるため、ハッシュを再ロードして強制終了するようにクライアントブラウザーを制御することをお勧めします。

于 2015-09-15T05:52:50.837 に答える