перенаправление хранит хэш

По какой-то причине, когда я перенаправляю header("Location") новая страница сохраняет хэш.

Поэтому, если вы находитесь на example.com/index.html#signup

Я перенаправляю

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

Но затем он показывает example.com/account.html#signup

Почему это происходит и как я могу остановить его? ie example.com/account.html


Заметка:

Я использую .htaccess для перенаправления file.html на file.php

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

Простой ответ на вопрос «как остановить его» – указать пустой хэш в заголовке Location :

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

Однако это поведение не гарантируется по всем направлениям. Кажется, он работает в WebKit и IE9 в моем быстром тестировании. Тем не менее, вы наткнулись на черную дыру в спецификации HTTP .

Я ищу для ответа, который работает в Firefox. Спустя некоторое время серфинг здесь и там, пока мой кот держит мяуканье, он приводит меня к окончательному решению:

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

Иногда вы хотите зарезервировать хеш, иногда вы этого не делаете, и потому, что кросс-браузер имеет значение, лучше контролировать клиентский браузер, чтобы перезагрузить и убить хэш.