htaccess deshabilita las reglas de reescritura de Wordpress para la carpeta y su contenido

4

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 voy a www.domain.com/app obtengo la página de mi aplicación, en lugar de la página estándar de Wordpress 404.

Sé que esto es bastante básico en las reglas de reescritura de Apache, y busqué esto, probé algunas cosas y no funcioné bien.

Casi lo olvido, solo necesito hacer esto editando el archivo htaccess de Wordpress. Y la aplicación tiene su propio archivo htaccess.

Gracias.

EDITAR: contenido 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>

EDITAR: Aplicación htaccess

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 niegan el acceso a todos los tipos de archivos PHP y INC , excepto index.php y download.php . A cuáles son las que el usuario necesita acceder, el resto son clases utilizadas internamente por PHP .

EDIT 3: Resolución:

Resulta que no había ningún problema con Wordpress htaccess o la aplicación; después de activar el informe de errores en el servidor de alojamiento remoto, PHP informó que un archivo dañado, una vez reemplazado, todo comenzó a funcionar bien. Mi agradecimiento a Wietse Venema por la sugerencia.

    
pregunta Fábio Antunes 04.03.2011 - 16:18

1 respuesta

5

El archivo .htaccess predeterminado ya admitirá el comportamiento que desea;

# 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] (lo que significa que "cualquier URL irá a index.php"), solo cuando la URL no sea un archivo existente !-f o el directorio existente !-d .

Así que esto debería funcionar por defecto. Las reglas de reescritura de Wordpress no se aplican cuando intenta visitar un archivo ya existente.

    
respondido por el Wietse Venema 04.03.2011 - 16:55

Lea otras preguntas en las etiquetas