MemberPress Rewrite Rules
Before we begin, this article is based on implementing the rewrite rules as outlined directly by MemberPress in their documentation:
https://docs.memberpress.com/article/179-understanding-rewrite-rules
In this article they state: “MemberPress does not officially support Nginx as a web-server.“
Should any issues arise, these would require the attention of the MemberPress team and it’s not something that our support team will be able to help you troubleshoot.
That all out the way, let’s get started!
Step 1. SSH into your server
To implement these rules you will need to SSH into your server. Please see the following articles to get started:
Generate your SSH Key:
Generate SSH Key on Windows with Putty
Generate SSH Key on Windows with Windows Subsystem for Linux
Generate SSH Key on Windows with Windows CMD/PowerShell
Add your SSH Key to GridPane:
Add/Remove an SSH Key to/from an Active GridPane Server
Connect to your server:
Step 2. Create memberpress-main-context.conf
To implement these rewrite rules on your website, we need to to add the configs to a file in your/site.url/nginx
directory using the
*-main-context.conf
include wildcard. To keep things organised, we’ll name the file
memberpress-main-context.conf
. Create the file
You can create this file with the following command (switching out “site.url” for your websites domain):nano /var/www/site.url/nginx/memberpress-main-context.confFor example:
nano /var/www/gridpane.com/nginx/memberpress-main-context.confThis will both create the file and open it with the nano editor ready for the next step.
Paste your config
Paste the following code into the file (again switching out “site.url” for your domain):location ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ { # Setup lock variables set $mplk_uri "/wp-content/plugins/memberpress/lock.php"; set $mplk_file "/var/www/site.url/htdocs/wp-content/uploads/mepr/rules/${cookie_mplk}"; # don't lock the lock uri if ($uri ~* "^/(wp-admin|wp-includes|wp-content/plugins|wp-content/themes)") { break; } # redirect if the lock file's a dir or doesn't exist if (-d $mplk_file) { rewrite ^ $mplk_uri last; } if (!-e $mplk_file) { rewrite ^ $mplk_uri last; } }You can now hit Ctrl+O and then press Enter to save the file. Then Ctrl+X to exit nano.
Step 3. Check and reload Nginx
We now need to test our Nginx syntax with:nginx -tIf there are no errors present, reload nginx with the following command:
gp ngx reload