MemberPress usa algumas regras avançadas de reescrita do Apache para proteger arquivos não controlados diretamente pelo WordPress.
Quando suas regras de reescrita estiverem configuradas corretamente, uma regra de URI personalizado no MemberPress deverá ser capaz de proteger qualquer tipo de arquivo, exceto:
php, phtml, jpg, jpeg, gif, css, png, js, ico, svg, woff, ttf e xml
Esses tipos de arquivos são excluídos para evitar possíveis problemas de desempenho.
Veja como você pode criar suas regras de reescrita em vários servidores da Web:
Apache e Litespeed
A maioria dos hosts da Web que oferecem o WordPress está executando o Apache como servidor da Web. Se você estiver executando o Apache e o usuário apache tiver acesso de gravação à raiz do documento (que é a configuração mais comum), então você não deveria ter que alterar suas regras de forma alguma ... O MemberPress deve ser capaz de posicionar automaticamente suas regras de forma adequada.
No entanto, se você precisar editar suas regras de reescrita do Apache, aqui está o que você precisará adicionar após as regras do WordPress:
# BEGIN MemberPress Regras 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 Regras
Observação: O código deve ser colado diretamente sob o # END WordPess
no arquivo .htaccess.
Observação: Você precisará certificar-se de substituir /var/www/somesite.com/ com seu caminho real da raiz do documento.
Nginx
MemberPress não é oficialmente compatível com Nginx como um servidor da Web. No entanto, você pode tenha sorte em conseguir que a equipe de suporte da sua hospedagem na Web implemente um dos seguintes procedimentos para você.
Nginx como um proxy do Apache
Se sua hospedagem na Web usa o Nginx como proxy (na frente) do Apache:
localização ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ { proxy_pass http://localhost:PORT_HERE; }
Observação: O PORT_HERE precisará ser alterada, seu host deve saber a porta correta # para o apache.
Nginx como um servidor da Web autônomo
Se você estiver usando apenas o Nginx como servidor da Web, poderá ter sucesso com o seguinte bloco de localização no arquivo de configuração do Nginx:
local ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ { # Configurar variáveis de bloqueio set $mplk_uri "/wp-content/plugins/memberpress/lock.php"; set $mplk_file "/var/www/html/wp-content/uploads/mepr/rules/${cookie_mplk}"; # não bloqueia o uri de bloqueio if ($uri ~* "^/(wp-admin|wp-includes|wp-content/plugins|wp-content/themes)") { break; } # redireciona se o arquivo de bloqueio for um diretório ou não existir if (-d $mplk_file) { rewrite ^ $mplk_uri last; } if (!-e $mplk_file) { rewrite ^ $mplk_uri last; } }
Se a opção acima não funcionar (especialmente se você estiver no Flywheel Cloud Hosting), tente a versão abaixo:
location ~ ^/wp-content/plugins/memberpress/lock.php { include fastcgi.conf; }<br> local ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ {<br> # Variáveis de bloqueio de configuração<br> definir $mplk_uri "/wp-content/plugins/memberpress/lock.php";<br> set $mplk_file "$document_root/wp-content/uploads/mepr/rules/${cookie_mplk}";<br> # não bloqueia o uri de bloqueio<br> Se ($uri ~* "^/(wp-admin|wp-includes|wp-content/plugins|wp-content/themes)") { break; }<br> # redireciona se o arquivo de bloqueio for um diretório ou não existir<br> if (-d $mplk_file) { rewrite ^ $mplk_uri last; }<br> if (!-e $mplk_file) { rewrite ^ $mplk_uri last; }<br> }
Observação: Você precisaria alterar o /var/www/html/ da parte do caminho na linha abaixo, para corresponder ao caminho da pasta de instalação do Wordpress
IIS e outros servidores da Web
Atualmente, não temos nenhuma regra compatível com esses servidores da Web.