Skip to content

Instantly share code, notes, and snippets.

@GAS85
Last active May 24, 2024 18:57
Show Gist options
  • Save GAS85/62b8e4851923e5ecec29cbc9b374ab18 to your computer and use it in GitHub Desktop.
Save GAS85/62b8e4851923e5ecec29cbc9b374ab18 to your computer and use it in GitHub Desktop.
Apache2 config for pihole with custom / non-admin link

Prerequisites

Install Pihole

Install pihole from the official repo as described here: https://github.com/pi-hole/pi-hole#one-step-automated-install, e.g. via

curl -sSL https://install.pi-hole.net | bash

During the installation please choose to install Web Interface, but to not install a Web Server.

Setup Apache2

Create Apache2 config for Pihole

Basically if you already have working apache2 config, just create file e.g. 004-pihole.conf in a /etc/apache2/sites-available/ with following content:

LAN Restriced

<IfModule alias_module>
    Alias /admin /var/www/html/admin
    <Directory "/var/www/html/admin">
        AllowOverride None
        Options None
        Order deny,allow
        Allow from 192.168.0.0/24 localhost 127.0.0.1
        #Allow from all
        Deny from all
    </Directory>
</IfModule>

In this case you can only access Pihole from the local network (192.168.0.0/24). If you would like to access from the internet also, please apply following config:

Internet access

<IfModule alias_module>
    Alias /admin /var/www/html/admin
    <Directory "/var/www/html/admin">
        AllowOverride None
        Options None
        Order deny,allow
        #Allow from 192.168.0.0/24 localhost 127.0.0.1
        Allow from all
        #Deny from all
    </Directory>
</IfModule>

Enable config

To enable Apache2 config for pihole please run:

a2ensite 004-pihole.conf

Then test our config and reload apache2 if succeed:

sudo apachectl configtest && sudo service apache2 reload

Finish

Now you can access your pihole via http(s)://YourIP_or_Domain/admin

Changing pihole URL path from /admin to /custom

If you would like to change you path from http(s)://YourIP_or_Domain/admin to e.g. http(s)://YourIP_or_Domain/custom, simply adjust Alias in 004-pihole.conf to expected path:

#Alias /admin /var/www/html/admin
Alias /custom /var/www/html/admin

And added simple rewrite rule (you have to enable apache mod_rewrite via sudo a2enmod rewrite) to your virtual host e.g. default-ssl.conf.

 #Pihole rewrite link from /admin to /pihole.
 RewriteEngine  on
 RewriteRule    "^/admin/(.*)"  "/custom/$2" [R]

Then test our config and reload apache2 if succeed:

sudo apachectl configtest && sudo service apache2 reload

Finish

Now you can access your pihole via http(s)://YourIP_or_Domain/custom

@Torstein-Eide
Copy link

Note that libapache2-mod-php is need, for php to work on apache2. pihole admin page uses php.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment