Rewrite rules play an indispensable role in how our PDA works. That’s why you should implement them correctly in order for our plugin to work properly.
Rewrite Rules
Our PDA Gold officially supports Apache, IIS (Windows) and NGINX servers at the moment.
While our rewrite rules are inserted automatically for Apache servers, you have to implement these rules manually for multisite networks, IIS (Windows) and NGINX servers.
Sometimes, our plugin won’t be able to detect which server is actually serving your static files. You have to contact your hosting provider to get the actual server and implement the correct rewrite rules accordingly.
If you get stuck at the our “Helpers” screen, please follow these simple steps:
- Double-check if our rewrite rules are inserted correctly
- Choose the “Use Raw URLs” option first
- When our settings page shows up, turn off “Keep Raw URLs” option
- Protect a file with our PDA Gold and double-check if its file access permission runs correctly
WordPress .htaccess and Sample PDA Gold Rewrite Rules
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # Prevent Direct Access Rewrite Rules RewriteRule ^private/([a-zA-Z0-9-_.]+)$ index.php?pda_v3_pf=$1&pdav3_rexypo=ymerexy [L] RewriteRule ^wp-content/uploads(/_pda/.*\.\w+)$ index.php?pda_v3_pf=$1 [QSA,L] # Prevent Direct Access Rewrite Rules End # IP Block Rewrite Rules for Folder Protection RewriteRule ^wp-content/uploads(/(paid-members)/.*\.\w+)$ index.php?pda_v3_pf=$1 [QSA,L] # IP Block Rewrite Rules for Folder Protection End RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Force Local Rewrite Rules
Our custom rewrite rules are added in the .htaccess file under the root folder, which is the same place as WordPress rules by default. However, since other plugins also implement their rules there, it might cause some conflicts that make our function not work properly.
If our PDA Gold doesn’t work as expected even though the rewrite rules are inserted correctly in the .htaccess file, please create a .htaccess rewrite rules under the _pda folder instead.
To do so, simply follow the steps below:
- Navigate to Prevent Direct Access Gold >> Settings from your admin dashboard
- Turn on the “Enable Debug Logs” option
- Then enable the “Force Local Rewrite Rules” option
PDA Status
When enabling debug logs, you can also see the PDA Status under Helpers tab. This helps you check if our plugin is working as expected at a particular time.
Here are the 4 PDA statuses that you might encounter:
- Our plugin is up and running
The plugin is working as expected.
- Our plugin is working with some limitations
You are using raw URLs but haven’t blocked access to our _pda folder yet.
When you enable raw URLs, our plugin will block the _pda folder for you automatically. However, sometimes it cannot be done due to missing file permission.
Learn how to block access to our _pda folder manually.
- Our plugin isn’t working properly due to incorrect Raw URLs setup
Our plugin has failed to remove our .htaccess file from the _pda folder, which should be done when you disable the Raw URLs option.
Please delete the file manually for our function to work properly.
- Our plugin isn’t working due to incorrect rewrite rules
Our rewrite rules are not implemented correctly.
Please double check our guidance right below the PDA Status section or try to insert rewrite rules under the _pda folder instead.
Raw URLs Limitations
Our Raw URLs comes in useful when you’re using WordPress.com or NGINX servers that don’t allow modifying rewrite rules. However, it comes with some limitations:
- Those who could somehow get the original file URL will be able to access your private files directly
https://preventdirectaccess.com/wp-content/uploads/_pda/2019/04/ToDo-List.pdf
- Our Robots meta tag and X-Robots-Tag HTTP header to block search indexing will no longer be working
What’s still working:
- Your File URLs still follow our File Access Permission
- Robots.txt rules are still in place to stop Google and search engines from crawling your private files
In order to overcome these limitations, you have to block access to our _pda
folder.
How to block access to “_pda” folder
Once the Raw URLs option is enabled, you have to block access (all requests) to our private _pda
folder for PDA Gold to work thoroughly. There are 2 ways to do so:
- Put the following .htaccess rules under
wp-content/uploads/_pda
folder for Apache and NGINX servers that support .htaccess like CloudwaysOrder deny, allow Deny from all
Once our Raw URLs option is OFF, you should remove the .htaccess file under our
_pda
folder. Our plugin will do this automatically for Apache servers. In case it somehow fails, you may want to remove it manually. - Implement our rewrite rules for NGINX instead of using Raw URLs in the first place.