Known Issues and Limitations

Below is the list of issues and limitations of Prevent Direct Access (PDA) Gold and its extensions. Those conflicts within our control will be fixed in the upcoming plugin releases.

Prevent Direct Access (PDA) Gold

  • There are some Raw URLs limitations on Nginx servers.
  • Unable to auto-activate subsite license with renewed licenses.
  • Protected files on subsites will be removed if deactivating plugin (WIP).
  • Fail to remove pda testing files after checking rewrite rules in some environment.
  • _pda folder is looped in some setup.
  • Protected files return to 404 page if their names contain more than 1 dot, e.g. “sample.pdf.pdf”.
  • Media “Bulk Actions” might cause errors when users select no files (WordPress issue).
  • Total clicks of private download link (MP3, MP4) may be more than the actual clicks if the browsers play them automatically.
  • Due to Cross-Origin Read Blocking (CORB), you can’t access the protected files embedded in a different site even when you have the right permission.

Incompatible plugins

  • Better Search & Replace (BSR) plugin: Their known issue makes all PDA Gold settings return to default values after BSR runs.
  • JWT Auth – WordPress JSON Web Token Authentication plugin: Prevent our configuration popup from displaying.
  • If you get the “Failed to load PDF documentation” error when accessing protected links or private links in some cases, it might be a conflict with one of the following features:
    • Minification and Gzip Compression features of Breeze plugin
    • Minify the HTML Output feature of SG Optimizer plugin
  • Pages excluded from search results using Search Exclude plugin won’t appear under our Search & Replace (S&R) search box. Simply “re-include” these pages by unticking the checkboxes on the plugin’s settings accordingly to show them on our S&R feature.

Resolved issues

You can resolved the issue by adding the following code snippet to your (child) theme’s functions.php file.

Requirement: Prevent Direct Access Gold version 3.3.0 or greater

add_filter( 'pda_get_home_url', 'pda_change_wppml_home_url', 10, 1 );
function pda_change_wppml_home_url( $home_url ) {
    if ( ! class_exists( 'SitePress' ) ) {
        return $home_url;

    global $sitepress;
    $language_negotiation_type          = $sitepress->get_setting( 'language_negotiation_type' );
    if ( '1' !== $language_negotiation_type ) {
        return $home_url;

    $setting_urls                       = $sitepress->get_setting( 'urls' );
    if ( empty( $setting_urls['directory_for_default_language'] ) ) {
        return $home_url;

    return trailingslashit( get_option( 'home' ) );
  • Force Download feature hasn’t supported MP3 & MP4 files yet (revolved in version 3.3.2)
  • Conflict with Frontend File Manager Plugin: Unable to protect files (resolved in version 3.1.6)
  • get_post_meta doesn’t work when using “Auto-protect New File Uploads” (resolved in version 3.1.6)
  • Original image sizes become accessible after editing (resolved in version 3.1.5)
  • Conflict with Enhanced Media Library plugin
  • Automatic update will be disabled without notification if the license key is expired (resolved in version
  • Display wrong htaccess rules in sites in which WordPress is installed in the subdirectory (resolved in version
  • Doesn’t work with Korean or Chinese filename (resolved in version
  • Conflict with Enable Media Replace plugin (resolved in version 3.1.2)

Our plugin works well with Pretty Permalinks but not Plain Permalinks on Apache as WordPress won’t generate any htaccess rules. To resolve this, you can select one of these options:

(1) Enable Keep Raw URLs option under our settings page

(2) Put our .htaccess rules as below:

<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]
RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit/[0-9]
RewriteCond %{HTTP_USER_AGENT} !Twitterbot/[0-9]
RewriteCond %{HTTP_USER_AGENT} !Googlebot/[0-9]
RewriteRule ^wp-content/uploads(/_pda/.*\.\w+)$ index.php?pda_v3_pf=$1 [QSA,L]
# Prevent Direct Access Rewrite Rules End

# BEGIN WordPress

# END WordPress

Protect Pages and Posts (PPP) Gold

  • Unable to protect the WooCommerce shop page
  • Conflict with Yoast SEO: Private access links display an error message (resolved in 2.0.0)
  • Conflict with OceanWP and Hello Elementor themes: Private access links display as blank pages (resolved in
  • Conflict with Elementor Builder: Private access links can’t load Elementor CSS (resolved in
  • Conflict with Divi Builder: Private access links can’t load Divi Shortcode (resolved in
  • Conflict with Password Protect WordPress plugin (resolved in
  • Can’t call API if using plain permalink (resolved in
  • Get 500 – Internal Server Error if using special characters under “Change Access Link Prefix” option (resolved in 1.0.13)

Please check out the list of WordPress plugins compatible with our PPP Gold.

Watermark WordPress Files

Resolved issues:

  • Conflict with “Disable PHP in Plugins” option of iThemes Security plugin. When this option is enabled, PDF files in PDF viewers can’t display and return 404 not found pages. Simply disable that option for our plugin to work properly.

PDA Amazon S3 Integration

  • Images: the status change from offloaded to synced after editing
  • Files with Unicode names won’t be removed from S3 bucket even if their server versions are deleted
  • Conflict with PDA Protect Videos extension: Can’t configure S3 bucket (resolved in
  • AWS config warning:
    AWS SDK tries to load configuration from ~/.aws/config, but accessing your home directory is prohibited in PHP configuration.

There are 2 solutions to resolve this:

  1. Configure open_basedir in php.ini that allows ~/.aws/config
  2. Set ENV variable to the default AWS configuration file.

To do so, you can put this code at the end of your (child) theme functions.php:

# Change to your actual website URL

PDA Protect Videos

  • Due to Browser connection limitations, default player can’t play more than 6 videos at the same time
  • Default player – S3 hosted: Playback Rate returns to 1x when being skipped
  • Integrate with Waveplayer
    • Haven’t supported playlist
    • Haven’t supported multisite mode (WIP)
  • Integrate with TechSmith Smart Player
    • Conflict with W3 Total Cache plugin (WIP)
  • There is a known conflict between “mejs” video library and our plugin, which stops our protected video from working properly.
  • Conflict with MasterStudy LMS Learning Management System plugin: They make our settings page not to load properly.
  • HLS videos auto-play in some cases.
  • Don’t work with Custom Post Types including WooCommerce Products (WIP)
  • Don’t work with Raw URLs
  • Conflict with “Force Download” function of PDA Gold
  • Conflict with “Search & Replace” function of PDA S3 (WIP)
  • Don’t display all published posts under Search & Replace settings option (resolved in

PDA Access Restriction

  • Folder Protection feature: File whose name including special characters such as ^ # & + ? ‘ will return to the 404  error page once protected
  • Bulk “Assign Permission” at the bottom doesn’t work (disabled from 1.0.5)
Lasted updated on July 27, 2022