MemberPress verwendet einige erweiterte Apache-Rewrite-Regeln, um Dateien zu schützen, die nicht direkt von WordPress kontrolliert werden.
Wenn Ihre Rewrite-Regeln ordnungsgemäß eingerichtet sind, sollte eine benutzerdefinierte URI-Regel in MemberPress in der Lage sein, alle Dateitypen außer diesen zu schützen:
php, phtml, jpg, jpeg, gif, css, png, js, ico, svg, woff, ttf und xml
Diese Dateitypen werden ausgeschlossen, um mögliche Leistungsprobleme zu vermeiden.
So können Sie Ihre Rewrite-Regeln auf verschiedenen Webservern erstellen:
Apache und Litespeed
Die meisten Webhosts, die WordPress anbieten, verwenden Apache als Webserver. Wenn Sie Apache nutzen und Ihr Apache-Benutzer Schreibzugriff auf Ihr Dokumentenstammverzeichnis hat (was die gängigste Konfiguration ist), dann
Du solltest deine Regeln überhaupt nicht ändern müssen ... MemberPress sollte in der Lage sein, Ihre Regeln automatisch richtig zu platzieren.
Sollten Sie Ihre Apache-Rewrite-Regeln dennoch bearbeiten müssen, müssen Sie Folgendes hinter den WordPress-Regeln hinzufügen:
# BEGIN MemberPress Regeln
RewriteCond %{HTTP_COOKIE} mplk=([a-zA-Z0-9]+)
RewriteCond /var/www/somesite.com/wp-content/uploads/mepr/rules/%1 -f
RewriteRule ^(.*)$ - [L]
RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-includes|wp-content/plugins|wp-content/themes)
RewriteCond %{REQUEST_URI} \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8|ZIP|GZ|TAR|RAR|DOC|DOCX|XLS|XLSX|XLSM|PDF|MP4|M4V|MP3|TS|KEY|M3U8)$
RewriteRule . /wp-content/plugins/memberpress/lock.php [L]
# END MemberPress Regeln
Anmerkung: Der Code sollte direkt unter der # END WordPess Zeile in der .htaccess-Datei.
Anmerkung: Sie müssen sicherstellen, dass Sie Folgendes ersetzen /var/www/somesite.com/ mit Ihrem tatsächlichen Docroot-Pfad.
Nginx
MemberPress
unterstützt offiziell nicht Nginx als Webserver. Allerdings müssen Sie Mai Viel Glück dabei, dass das Support-Team Ihres Webhosts eine der folgenden Möglichkeiten für Sie implementiert.
Nginx als Apache-Proxy
Wenn Ihr Webhost Nginx als Proxy (vor) für Apache verwendet:
location ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ {
proxy_pass http://localhost:PORT_HERE;
}
Anmerkung: Die PORT_HERE Teil muss geändert werden, Ihr Host sollte den richtigen Port # für Apache kennen.
Nginx als eigenständiger Webserver
Wenn Sie ausschließlich Nginx als Webserver verwenden, könnte der folgende „location“-Block in Ihrer Nginx-Konfigurationsdatei die Lösung sein:
Ort ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ {
# Sperrvariablen einrichten
Setzen Sie $mplk_uri "/wp-content/plugins/memberpress/lock.php";
setze $mplk_file "/var/www/html/wp-content/uploads/mepr/rules/${cookie_mplk}";
# sperren Sie die Sperr-URI nicht
if ($uri ~* "^/(wp-admin|wp-includes|wp-content/plugins|wp-content/themes)") { break; }
# redirect, wenn die Lock-Datei ein Verzeichnis ist oder nicht existiert
if (-d $mplk_file) { rewrite ^ $mplk_uri last; }
if (!-e $mplk_file) { rewrite ^ $mplk_uri last; }
}
Wenn die obige Version nicht funktioniert (insbesondere, wenn Sie Flywheel Cloud Hosting nutzen), versuchen Sie stattdessen die folgende Version:
location ~ ^/wp-content/plugins/memberpress/lock.php { include fastcgi.conf; }<br>
location ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ {<br>
# Setup-Sperrvariablen<br>
$mplk_uri "/wp-content/plugins/memberpress/lock.php" einstellen;<br>
set $mplk_file "$document_root/wp-content/uploads/mepr/rules/${cookie_mplk}";<br>
# sperren Sie die Sperr-Uri nicht<br>
if ($uri ~* "^/(wp-admin|wp-includes|wp-content/plugins|wp-content/themes)") { break; }<br>
# Umleitung, wenn die Sperrdatei ein Verzeichnis ist oder nicht existiert<br>
if (-d $mplk_file) { rewrite ^ $mplk_uri last; }<br>
if (!-e $mplk_file) { rewrite ^ $mplk_uri last; }<br>
}
Anmerkung: Sie müssen die /var/www/html/ Teil des Pfades in der folgenden Zeile, damit er dem Pfad zu Ihrem WordPress-Installationsordner entspricht
IIS, Caddy und andere Webserver
Derzeit gibt es für diese Webserver keine unterstützten Regeln.