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.