PHP Перенаправляет пользователя и сохраняет предыдущий URL-адрес в истории браузера

#php #redirect #header #browser-history

Вопрос:

Это привело меня в замешательство. Позвольте мне сказать, что пользователь посещает папку A, но, допустим, по какой-то причине он перенаправляется в папку B. Проблема в том, что браузер не регистрирует местоположение A в своей истории.

url/A перенаправляет на немного другое местоположение url/B

После того, как пользователь нажимает на кнопку «назад в историю», он не переходит по предыдущему URL/местоположению. Я бы сказал, что это как бы опущено.

Я попробовал эти 2 метода для перенаправления. И, похоже, они не сохраняют текущий URL-адрес в истории браузера.

 header("Refresh:0; url=$url_b");
header('Location: '.$url_b); 
 

Комментарии:

1. Почему А должно быть в истории в первую очередь? В ответе на этот запрос не было ничего, что мой браузер мог бы «отобразить» каким — либо образом, и ему сразу же сказали, что он должен искать в другом месте-так зачем мне «возвращаться» туда для начала?

2. @CBroe допустим, пользователь не соответствовал какому-то условию, и он был перенаправлен. В следующий раз пользователь может соответствовать этому условию и остаться или быть перенаправлен куда-нибудь еще.

Ответ №1:

Хотя я все еще сомневаюсь в причине, но вы, возможно, сможете использовать javascript на странице А для перенаправления. Таким образом, мы можем вернуться к тому, где мы были, нажав кнопку «Назад».

Итак, здесь у нас есть js-скрипт, который запускается только в том случае, если условие php равно false:

 <?php
if ( ! condition) { ?>
    <script>
        window.location.href = "http://example.com/B";
    </script>
<? }
?>