# ?i=1 remove "hash(#)" from url

**URL:** <https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431>\
**Category:** Hosting Support\
**Created:** [August 9, 2023, 12:59am UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431 "2023-08-09T00:59:33Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![bakomon](https://forum.infinityfree.com/user_avatar/forum.infinityfree.com/bakomon/32/38804_2.png) [@bakomon](https://forum.infinityfree.com/u/bakomon)\
**Post date:** [August 9, 2023, 12:59am UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/1 "2023-08-09T00:59:33Z")

</div>

Reproduction steps:

- Open [https://bakomon.epizy.com/#description](https://bakomon.epizy.com/#description)
- The page reload with the ?=1 suffix & hash “description” removed

Any solution for this?

---

<div class="post-metadata">

**Author:** ![Meishin](https://forum.infinityfree.com/user_avatar/forum.infinityfree.com/meishin/32/59902_2.png) [@Meishin](https://forum.infinityfree.com/u/Meishin)\
**Post date:** [August 9, 2023, 1:14am UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/2 "2023-08-09T01:14:39Z")

</div>

See

> [@Why do I see ?i=1 at the end of a URL](https://forum.infinityfree.com/t/why-do-i-see-i-1-at-the-end-of-a-url/49356):
>
> Don’t worry, this is normal! When you visit your website, you might notice ?i=1 added to the end of your URL. Here’s what’s happening and why. What is the ?i=1 suffix? The ?i=1 is a security check that protects your website from bots and malicious traffic. Our system needs to verify you’re using a real web browser before letting you access your site. Why does it appear? When you first visit your website, our security system: Sends a small test to your browser Checks if your browser can store…

This is part of our security system so sorry.

---

<div class="post-metadata">

**Author:** ![bakomon](https://forum.infinityfree.com/user_avatar/forum.infinityfree.com/bakomon/32/38804_2.png) [@bakomon](https://forum.infinityfree.com/u/bakomon)\
**Post date:** [August 9, 2023, 3:03am UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/3 "2023-08-09T03:03:32Z")

</div>

I know “?i=1” is part of the security system and I’ve read about it.

But, why remove hash(#) from url?

Why not just add the querystring parameter “i” and keep the other url parameters?

@Admin

---

<div class="post-metadata">

**Author:** ![KangJL](https://forum.infinityfree.com/user_avatar/forum.infinityfree.com/kangjl/32/12130_2.png) [@KangJL](https://forum.infinityfree.com/u/KangJL)\
**Post date:** [August 9, 2023, 5:09am UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/4 "2023-08-09T05:09:46Z")

</div>

> [@bakomon](#):
>
> - Open [https://bakomon.epizy.com/#description](https://bakomon.epizy.com/#description)
> - The page reload with the ?=1 suffix & hash “description” removed

I see this

 ![image](https://forum-cdn.infinityfree.net/original/3X/4/c/4c89f959942cf98a00ee4acc77353a2a7d8dab8a.jpeg)

What issue?

Stop pinging admin, it’s annoying

---

<div class="post-metadata">

**Author:** ![SpookyKipper](https://forum.infinityfree.com/user_avatar/forum.infinityfree.com/spookykipper/32/27461_2.png) [@SpookyKipper](https://forum.infinityfree.com/u/SpookyKipper)\
**Post date:** [August 9, 2023, 5:12am UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/5 "2023-08-09T05:12:48Z")

</div>

The #description element id is actually removed by the system on first load, you probably loaded it once before

---

<div class="post-metadata">

**Author:** ![Admin](https://forum.infinityfree.com/user_avatar/forum.infinityfree.com/admin/32/36437_2.png) [@Admin](https://forum.infinityfree.com/u/Admin)\
**Post date:** [August 9, 2023, 8:57am UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/6 "2023-08-09T08:57:02Z")

</div>

I don’t think that it’s possible to fix this, not without us making substantial changes to how the system works.

When a new browser loads the page, it’s presented with a Javascript challenge that will redirect you to the “same” URL with the `?i=1` suffix. The URL you’ll be redirected to is generated on the server. It does properly maintain the URL path and any query string you were passing along. However, browsers do not send the URL fragment to the server, so there is no way for the server to know if there is a URL to be included, let alone what that fragment should be.

Hypothetically, it could be possible to generate the redirect target URL from Javascript instead, which would make it possible to include the URL fragment. But that requires substantial changes to how the code works, so we can’t do that just like that.

---

<div class="post-metadata">

**Author:** ![bakomon](https://forum.infinityfree.com/user_avatar/forum.infinityfree.com/bakomon/32/38804_2.png) [@bakomon](https://forum.infinityfree.com/u/bakomon)\
**Post date:** [August 10, 2023, 12:10am UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/7 "2023-08-10T00:10:26Z")

</div>

> browsers do not send the URL fragment to the server

How about sending full url as a string to server, then parsing it on server side?

---

<div class="post-metadata">

**Author:** ![Admin](https://forum.infinityfree.com/user_avatar/forum.infinityfree.com/admin/32/36437_2.png) [@Admin](https://forum.infinityfree.com/u/Admin)\
**Post date:** [August 10, 2023, 7:28pm UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/8 "2023-08-10T19:28:43Z")

</div>

I’m not sure how you think that should work exactly.

Right now, in the normal situation, a visitor first visits the site for the first time, e.g. `http://example.com/forum/topics.php?topic_id=1234#post5`. In the access logs on the server, you would see the requested URL as `/forum/topics.php?topic_id=1234`, because the fragment is not sent to the server.

Because the visitor have the security cookie, the server responds with the challenge Javascript code, which contains code to redirect the visitor to the URL it received from the client, which is `http://example.com/forum/topics.php?topic_id=1234`.

While hypothetically it’s possible to send the URL fragment to the server from the challenge code, it’s too late, because the redirect URL has already been set. And doing another request to determine it would only make the process even slower.

---

<div class="post-metadata">

**Author:** ![system](https://infinityfree-forum-uploads.s3.dualstack.eu-central-1.amazonaws.com/original/3X/b/0/b024fd3fa88bae093c9576e55c2c94e33f890206.svg) [@system](https://forum.infinityfree.com/u/system)\
**Post date:** [August 17, 2023, 7:29pm UTC](https://forum.infinityfree.com/t/i-1-remove-hash-from-url/80431/9 "2023-08-17T19:29:07Z")

</div>

Closed on August 17, 2023, 7:29pm UTC

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
