Menú adicional

¡Consiga MemberPress hoy mismo! ¡Empieza a cobrar por los contenidos que creas! Obtenga MemberPress ahora
  1. Inicio
  2. Base de conocimientos
  3. General
  4. Protección de contenidos
  5. Reglas de reescritura para la protección de archivos

Reglas de reescritura para la protección de archivos

Aunque estas instrucciones siguen siendo válidas, desde entonces hemos lanzado el Complemento de Descargas MemberPress, así que si no consigues que la protección de archivos funcione con tu servidor web, puedes echarle un vistazo. Haga clic aquí para leer más.

MemberPress utiliza algunas reglas avanzadas de reescritura de Apache para proteger los archivos no controlados directamente por WordPress. 

Una vez que las reglas de reescritura están configuradas correctamente, una regla URI personalizada en MemberPress debería ser capaz de proteger cualquier tipo de archivo excepto:

php, phtml, jpg, jpeg, gif, css, png, js, ico, svg, woff, ttf y xml

Estos tipos de archivos se excluyen para evitar posibles problemas de rendimiento.

He aquí cómo puede construir sus reglas de reescritura en varios servidores web:

Apache y Litespeed

Nota: MemberPress deshabilita nuestras reglas de reescritura personalizadas por defecto. Es posible que tenga que ir a MemberPress->Configuración->General y desmarcar la casilla "Desactivar reglas de reescritura" y luego guardar los cambios para que las reglas URI personalizadas funcionen. 

La mayoría de los alojamientos web que ofrecen WordPress utilizan Apache como servidor web. Si está ejecutando Apache y su usuario apache tiene acceso de escritura a la raíz del documento (que es la configuración más común), entonces no deberías tener que alterar tus reglas en absoluto ... MemberPress debería ser capaz de colocar automáticamente sus reglas correctamente.

Sin embargo, si necesita editar sus reglas de reescritura de Apache, esto es lo que tendrá que añadir después de las reglas de WordPress:

# BEGIN MemberPress Reglas


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 Reglas

Nota: El código debe pegarse directamente debajo del # END WordPess en el archivo .htaccess.

Nota: Deberá asegurarse de sustituir /var/www/somesite.com/ con su ruta docroot real.

Nginx

MemberPress no admite oficialmente Nginx como servidor web. Sin embargo mayo tenga suerte y consiga que el equipo de soporte de su alojamiento web le aplique alguna de las siguientes medidas.

Nginx como proxy de Apache

Si su proveedor de alojamiento web utiliza Nginx como proxy (delante de) para Apache:

location ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ {
  proxy_pass http://localhost:PORT_HERE;
}

Nota: En PORT_HERE parte tendrá que ser cambiado, su anfitrión debe conocer el puerto correcto # para apache.

Nginx como servidor web independiente

Si está utilizando sólo Nginx como servidor web, puede tener éxito con el siguiente bloque de ubicación en el archivo de configuración de Nginx:

        ubicación ~* \.(zip|gz|tar|rar|doc|docx|xls|xlsx|xlsm|pdf|mp4|m4v|mp3|ts|key|m3u8)$ {
                # Configurar variables de bloqueo
                set $mplk_uri "/wp-content/plugins/memberpress/lock.php";
                set $mplk_file "/var/www/html/wp-content/uploads/mepr/rules/${cookie_mplk}";

                # no bloquear la uri de bloqueo
                if ($uri ~* "^/(wp-admin|wp-includes|wp-content/plugins|wp-content/themes)") { break; }

                # redirige si el archivo de bloqueo es un dir o no existe
                if (-d $mplk_file) { rewrite ^ $mplk_uri last; }
                if (!-e $mplk_file) { rewrite ^ $mplk_uri last; }
        }

Si lo anterior no funciona (especialmente si usted está en Flywheel Cloud Hosting) pruebe la versión de abajo en su lugar:

	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>
	       # Configurar variables de bloqueo<br>
       	       set $mplk_uri "/wp-content/plugins/memberpress/lock.php";<br>
	       set $mplk_file "$document_root/wp-content/uploads/mepr/rules/${cookie_mplk}";<br>
	       # no bloquee la uri de bloqueo<br>
	       if ($uri ~* "^/(wp-admin|wp-includes|wp-content/plugins|wp-content/themes)") { break; }<br>
	       # redirigir si el archivo de bloqueo es un dir o no existe<br>
	       if (-d $mplk_file) { rewrite ^ $mplk_uri last; }<br>
	       if (!-e $mplk_file) { rewrite ^ $mplk_uri last; }<br>
	}

Nota: Tendría que modificar el /var/www/html/ de la ruta en la línea siguiente, para que coincida con la ruta de la carpeta de instalación de wordpress

IIS y otros servidores web

Actualmente no disponemos de reglas compatibles con estos servidores web.

¿Le ha resultado útil este artículo?

Artículos relacionados

chica del ordenador

¡Consiga MemberPress hoy mismo!

Empieza a cobrar por los contenidos que creas.