# Pi-hole v6 Nginx Reverse Proxy Issue – Admin Dashboard Not Resolving Without /admin/ Path

**URL:** <https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362>\
**Category:** Help\
**Created:** [March 2, 2025, 8:21pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362 "2025-03-02T20:21:33Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [March 2, 2025, 8:21pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/1 "2025-03-02T20:21:33Z")

</div>

#### **Expected Behaviour:**

Previously, on Pi-hole v5, I could access the admin login page by using just the IP and port (e.g., `http://<Pi-hole_IP>:80`) when resolving my FQDN internally through my Synology NAS's built-in Nginx reverse proxy. No additional configuration was needed beyond setting the IP and port in Nginx.

#### **Actual Behaviour:**

After upgrading to Pi-hole v6, attempting to access `http://<Pi-hole_IP>:80` results in a 403 error instead of the admin login page. The login page only loads if `/admin/` is manually appended to the URL (`http://<Pi-hole_IP>:80/admin/`).

I am unable to configure directory paths within the Synology Nginx manager—it only allows setting an IP and port. Since this setup worked fine on v5, I am looking for a Pi-hole-side solution to make `http://<Pi-hole_IP>:80` automatically serve the admin dashboard without needing to append `/admin/`.

#### **Debug Token:**

_(Will provide only if absolutely necessary)_

Any guidance on resolving this would be appreciated!

 ![Screenshot_20250302_115615](https://discourse.pi-hole.net/uploads/default/original/3X/9/5/957c3fb7c1e271be7c64195c99bbd970aebaced1.png)

---

<div class="post-metadata">

**Author:** ![Bucking\_Horn](https://discourse-cdn.pi-hole.net/user_avatar/discourse.pi-hole.net/bucking_horn/32/18719_2.png) [@Bucking\_Horn](https://discourse.pi-hole.net/u/Bucking_Horn)\
**Post date:** [March 4, 2025, 2:51pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/2 "2025-03-04T14:51:26Z")

</div>

> [@SudoMason](#):
>
> I am unable to configure directory paths within the Synology Nginx manager—it only allows setting an IP and port.

Would it perhaps accept a name instead of an IP?  
If so, did you try to use `pi.hole:80` yet?

---

<div class="post-metadata">

**Author:** ![rdwebdesign](https://discourse-cdn.pi-hole.net/user_avatar/discourse.pi-hole.net/rdwebdesign/32/51363_2.png) [@rdwebdesign](https://discourse.pi-hole.net/u/rdwebdesign)\
**Post date:** [March 5, 2025, 1:38am UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/3 "2025-03-05T01:38:22Z")

</div>

Maybe these posts can help you:

- [Can't get v6 webinterface behind nginx reverse proxy to work - #3 by rdwebdesign](https://discourse.pi-hole.net/t/cant-get-v6-webinterface-behind-nginx-reverse-proxy-to-work/76231/3)
- [Use nginx reverse proxy - #6 by tefracky](https://discourse.pi-hole.net/t/use-nginx-reverse-proxy/65597/6)

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [March 5, 2025, 6:23pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/4 "2025-03-05T18:23:40Z")

</div>

> [@Bucking\_Horn](#):
>
> pi.hole:80

Hi,

Yes, I did try this and it does not work.

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [March 5, 2025, 6:28pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/5 "2025-03-05T18:28:28Z")

</div>

Hi,

Thanks for sharing those links, but unfortunately, those solutions don’t work for me.

The real question is, why does v6 behave this way? I’ve never come across a self-hosted service that doesn’t resolve the web interface login page with just the IP and port. Every other self-hosted service does this, so I’m wondering if this is a bug that will be fixed or if it was intentional, and if so why?

Either way, are there any plans to revert this?

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [March 21, 2025, 8:50pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/6 "2025-03-21T20:50:18Z")

</div>

Am I correct in assuming that the developers have no plans to restore this to its previous functionality or offer a simplified solution?

---

<div class="post-metadata">

**Author:** ![rdwebdesign](https://discourse-cdn.pi-hole.net/user_avatar/discourse.pi-hole.net/rdwebdesign/32/51363_2.png) [@rdwebdesign](https://discourse.pi-hole.net/u/rdwebdesign)\
**Post date:** [March 21, 2025, 9:08pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/7 "2025-03-21T21:08:30Z")

</div>

> [@SudoMason](#):
>
> Previously, on Pi-hole v5, I could access the admin login page by using just the IP and port (e.g., `http://<Pi-hole_IP>:80`)

Pi-hole v5 didn't automatically redirect using IP for every user.  
Actually if you were using IP, this redirection was automatic **only in docker** _(you use docker in Synology)_.

A `lighttpd` configuration file containing a [hard-coded](https://github.com/pi-hole/docker-pi-hole/blob/4149693092ea364c7aab6c30ba0b308e4bc45716/src/s6/debian-root/usr/local/bin/bash_functions.sh#L383-L391) redirection was installed (`/etc/lighttpd/conf-enabled/15-pihole-admin-redirect-docker.conf`):

```auto
    $HTTP["url"] == "/" {
        $HTTP["host"] == "pihole" {
            url.redirect = ("" => "/admin/")
        }
        $HTTP["host"] == "192.168.0.201" { # FTLCONF_LOCAL_IPV4 was used here
            url.redirect = ("" => "/admin/")
        }
    }

```

Now, you need to create your own redirection using a reverse proxy.

---

<div class="post-metadata">

**Author:** ![Ladrien](https://discourse-cdn.pi-hole.net/user_avatar/discourse.pi-hole.net/ladrien/32/39018_2.png) [@Ladrien](https://discourse.pi-hole.net/u/Ladrien)\
**Post date:** [March 21, 2025, 9:09pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/8 "2025-03-21T21:09:18Z")

</div>

I don't understand what you think is "missing". Pi-hole v5 behaved in the exact same way, where you had to go to /admin to log in.

The only significant difference is the addition of /api. You will likely need to change your nginx configuration to account for this.

I should be more clear: this is not pi-hole's fault. It's a simple nginx configuration change.

---

<div class="post-metadata">

**Author:** ![DanSchaper](https://discourse-cdn.pi-hole.net/user_avatar/discourse.pi-hole.net/danschaper/32/91_2.png) [@DanSchaper](https://discourse.pi-hole.net/u/DanSchaper)\
**Post date:** [March 21, 2025, 9:51pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/9 "2025-03-21T21:51:16Z")

</div>

> [@SudoMason](#):
>
> Am I correct in assuming that the developers have no plans to restore this to its previous functionality or offer a simplified solution?

No, you are quite incorrect.

> <https://github.com/pi-hole/web/pull/3269>
>
> \# What does this implement/fix?
> 
> See https://github.com/pi-hole/FTL/pull/2319 …for further details. This PR mostly consists of search-and-replace to remove hard-coded absolute paths for the login page as well as adding the ability to send API requests to anywhere else than the fixes \`/api\` path.
> 
> \> \[!NOTE\]
> \> You will need the related FTL branch \`new/web\_prefix\` for this to work as expected.
> 
> \---
> 
> \*\*Related issue or feature (if applicable):\*\* Fixes https://github.com/pi-hole/FTL/issues/2298
> 
> \*\*Pull request in \[docs\](https://github.com/pi-hole/docs) with documentation (if applicable):\*\* N/A
> 
> \---
> \*\*By submitting this pull request, I confirm the following:\*\* 
> 
> 1. I have read and understood the \[contributors guide\](https://docs.pi-hole.net/guides/github/contributing/), as well as this entire template. I understand which branch to base my commits and Pull Requests against. 
> 2. I have commented my proposed changes within the code.
> 3. I am willing to help maintain this change if there are issues with it later.
> 4. It is compatible with the \[EUPL 1.2 license\](https://opensource.org/licenses/EUPL-1.1)
> 5. I have squashed any insignificant commits. (\[\`git rebase\`\](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html))
> 
> \## Checklist:
> 
> \- \[x\] The code change is tested and works locally.
> \- \[x\] I based my code and PRs against the repositories \`developmental\` branch.
> \- \[x\] I \[signed off\](https://docs.pi-hole.net/guides/github/how-to-signoff/) all commits. Pi-hole enforces the \[DCO\](https://docs.pi-hole.net/guides/github/dco/) for all contributions
> \- \[x\] I \[signed\](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) all my commits. Pi-hole requires signatures to verify authorship
> \- \[x\] I have read the above and my PR is ready for review.

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [March 22, 2025, 1:35am UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/10 "2025-03-22T01:35:57Z")

</div>

> [@rdwebdesign](#):
>
> _(you use docker in Synology)_.

My Pi-hole is and has always been running on DietPi OS, hosted on a dedicated Raspberry Pi device.

In Pi-hole's local DNS records, I've configured it to forward my FQDN requests internally to my NAS IP. From there, Nginx intercepts the request and directs it to the appropriate service.

This setup used to work perfectly, delivering the actual login page for my service. However, since upgrading from Pi-hole v5 to v6, the only change made, it now returns a 404 error page instead.

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [March 22, 2025, 1:47am UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/11 "2025-03-22T01:47:07Z")

</div>

Take a look at the attached image? It shows how I set up a reverse proxy in Synology DSM using its built-in Nginx functionality. I run a homelab where I self-host multiple services, and this is the first time I've encountered an issue when reverse proxying my FQDN subdomain to a service's IP and port. Instead of displaying the intended main web service page, it returns a 404 error page that I shared a screen of in the original post. I'm not suggesting Pi-hole is to blame; that wasn't the point of my last response. After waiting 16 days without a response to my last reply, I started thinking maybe there’s no solution for this. One thing is clear, though: this probably isn’t how it’s supposed to work.

 ![image](https://discourse.pi-hole.net/uploads/default/original/3X/6/b/6bce2d08056d56ff12dd2c06e7b4c4639457cbfa.png)

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [March 22, 2025, 1:52am UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/12 "2025-03-22T01:52:02Z")

</div>

And very happy to be.

Appreciate the team's efforts.

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [April 3, 2025, 12:01pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/13 "2025-04-03T12:01:49Z")

</div>

Issue is still persisting in recent 6.1 update.

---

<div class="post-metadata">

**Author:** ![Bucking\_Horn](https://discourse-cdn.pi-hole.net/user_avatar/discourse.pi-hole.net/bucking_horn/32/18719_2.png) [@Bucking\_Horn](https://discourse.pi-hole.net/u/Bucking_Horn)\
**Post date:** [April 3, 2025, 6:49pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/14 "2025-04-03T18:49:27Z")

</div>

> [@SudoMason](#):
>
> Instead of displaying the intended main web service page, it returns a 404 error page that I shared a screen of in the original post.

Is that 404 a recent occurrence?  
Your original post doesn't show a 404:

> [@SudoMason](#):
>
> ![Screenshot_20250302_115615](https://discourse.pi-hole.net/uploads/default/original/3X/9/5/957c3fb7c1e271be7c64195c99bbd970aebaced1.png)

I am not familiar with Synology's nginx frontend, but your nginx configuration should match something like

> [@Can't get v6 webinterface behind nginx reverse proxy to work](https://discourse.pi-hole.net/t/cant-get-v6-webinterface-behind-nginx-reverse-proxy-to-work/76231/10):
>
> Thanks for the heads up! Yes indeed it did change something, I just need one reverse proxy statement now. As I read in [https://discourse.pi-hole.net/t/implement-auto-redirection-to-admin/77370/2](https://discourse.pi-hole.net/t/implement-auto-redirection-to-admin/77370/2) to set webserver.domain to the domain I'm using (pi-hole.home in my example) even the redirect to /admin works, so I can skip this in nginx config too. New config: server { listen 192.168.0.1:80; listen [::]:80 ; server\_name pi-hole.home; location / { …

---

<div class="post-metadata">

**Author:** ![stefan](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/bbce88/32.png) [@stefan](https://discourse.pi-hole.net/u/stefan)\
**Post date:** [April 3, 2025, 8:18pm UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/15 "2025-04-03T20:18:00Z")

</div>

> [@SudoMason](#):
>
> I am looking for a Pi-hole-side solution to make `http://<Pi-hole_IP>:80` automatically serve the admin dashboard without needing to append `/admin/`.

That isn't possible with v6 as Pi-hole needs `/admin/` and the new `/api/` path to work.

What's possible is that `/` can redirect to `/admin/` which somehow also will make `http://<Pi-hole_IP>/` "work" as it will automatically redirect to `http://<Pi-hole_IP>/admin/`  
This auto-redirect only happens, if Pi-hole setting `webserver.domain` is set to the domain you are using. So try setting this to `<Pi-hole_IP>` and I guess it should work.

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [April 4, 2025, 12:28am UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/16 "2025-04-04T00:28:32Z")

</div>

I just realized I made a typo that I’ve now corrected. It’s a 403 page, not a 404.

---

<div class="post-metadata">

**Author:** ![SudoMason](https://discourse-cdn.pi-hole.net/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@SudoMason](https://discourse.pi-hole.net/u/SudoMason)\
**Post date:** [April 4, 2025, 12:51am UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/17 "2025-04-04T00:51:25Z")

</div>

> [@stefan](#):
>
> This auto-redirect only happens, if Pi-hole setting `webserver.domain` is set to the domain you are using. So try setting this to `<Pi-hole_IP>` and I guess it should work.

It worked successfully. Thank you for providing that information.

---

<div class="post-metadata">

**Author:** ![system](https://discourse.pi-hole.net/uploads/default/original/3X/7/c/7c8792f649eeb921c5d2b4c41564ffa873d9a2b8.png) [@system](https://discourse.pi-hole.net/u/system)\
**Post date:** [April 25, 2025, 12:52am UTC](https://discourse.pi-hole.net/t/pi-hole-v6-nginx-reverse-proxy-issue-admin-dashboard-not-resolving-without-admin-path/77362/18 "2025-04-25T00:52:11Z")

</div>

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