Deshabilitar reglas de reescritura de WordPress con htaccess para carpeta y su contenido
Tengo otra aplicación PHP en una carpeta llamada app
dentro de mi instalación de WordPress, y necesito deshabilitar todas las reglas de reescritura de WordPress para esa carpeta y su contenido. De modo que cuando vaya a www.domain.com/app
obtenga la página de mi aplicación, en lugar de la página 404 estándar de WordPress.
Sé que estas son reglas básicas de reescritura de Apache, y he buscado esto, probé algunas cosas y no funcionaron bien.
Casi lo olvido, necesito hacer esto solo editando el archivo htaccess de WordPress. Y la aplicación tiene su propio archivo htaccess.
Gracias.
EDICIÓN: contenido del htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
EDICIÓN: htaccess de la Aplicación
DirectoryIndex index.php
<FilesMatch "\.(php|inc)$">
Order allow,deny
deny from all
</FilesMatch>
<FilesMatch "(index.php|download.php)$">
Order allow,deny
allow from all
</FilesMatch>
Estas reglas no hacen mucho, básicamente deniegan el acceso a todos los tipos de archivo PHP
y INC
, excepto index.php
y download.php
. Que son los que el usuario necesita acceder, el resto son clases utilizadas internamente por PHP
.
EDICIÓN 3: Resolución:
Resultó que no había nada malo con el htaccess
de WordPress o la aplicación, después de activar el reporte de errores en el servidor de alojamiento remoto, PHP reportó un archivo corrupto, una vez reemplazado, todo comenzó a funcionar bien. Mi agradecimiento a Wietse Venema por la sugerencia.

El archivo .htaccess predeterminado ya admitirá el comportamiento que deseas;
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
La magia está en las líneas que comienzan con RewriteCond. Le indican a Apache que aplique la regla RewriteRule . /index.php [L]
(que significa "cualquier URL irá a index.php"), solo cuando la URL no es un archivo existente !-f
o un directorio existente !-d
.
Por lo tanto, esto debería funcionar por defecto. Las reglas de reescritura de WordPress no se aplican cuando intentas visitar un archivo que ya existe.
