htmlhttpweb

How to avoid a page being added to browser history when redirecting using a meta http-equiv tag?


I have a web page that redirects to the desired destination url using:

<meta http-equiv="refresh" content="0; URL=$destination.url" />

I would like to avoid the first page being added to the browser's history.

In particular, in mobiles (Android, iOS, etc) I would like the back button to skip the redirecting page.


Solution

  • Your two options are to either use a real HTTP redirect, or to use JavaScript's location.replace.

    The former is better, but if there's some reason you can't do it, location.replace can work as an alternative:

    document.location.replace(redirectURL)
    

    location.replace actually replaces the current location in the browser history, so the back button will not go back to the redirection page. If you do this you may also want to include a meta refresh with a short timeout as a fallback if you expect any of your users to not have JavaScript.