How do I allow all traffic to a specific WordPress URL while restricting requests to the rest of the site to certain IP addresses?

We currently restrict access to the entire staging site using Apache (2.4.7) ‘Allow from xxx.xxx.xxx.xxx’ directives. I am developing a custom tool on a single WordPress page that we want to allow some external partners to review. How can we maintain the sitewide IP restrictions but allow all requests to a specific URL?

The best shot I’ve taken involves mod_setenvif, but I haven’t managed to make it work. This could be due to the WordPress permalink rewrites, but I’m not sure. Relevant section of the Apache site config below.

    <IfModule mod_ssl.c>
    <VirtualHost *:443>

            #...

            DocumentRoot /var/www/staging.example.org
            SetEnvIf Request_URI ^/mapping-tool-demo$ DEMO_ACCESS

            <Directory /var/www/staging.example.org/>
                    AllowOverride All
                    Order Allow,Deny
                    Deny from all
                    Allow from env=DEMO_ACCESS
                    Allow from xxx.xx.xxx.xx xxx.xxx.xx.xx #HQ Office access


                    Allow from xxx.xx.xx.xxx xx.xxx.xxx.xx #Consultant temp access

            </Directory>

         #...

    </VirtualHost>
    </IfModule>

Read more here: How do I allow all traffic to a specific WordPress URL while restricting requests to the rest of the site to certain IP addresses?

Leave a Reply

Your email address will not be published. Required fields are marked *