Problema con subdirectorios en .htaccess de Wordpress

4 feb 2011, 09:24:56
Vistas: 8.19K
Votos: 4

He tenido algunos problemas con mi instalación de Wordpress que no me permite acceder a subdirectorios, específicamente una instalación de CodeIgniter en mydomain.com/codeigniter. Sé que técnicamente debería funcionar bien tal cual está y reconocer las carpetas según se crean. Sin embargo, esto no está ocurriendo. Sospecho que tiene algo que ver con un plugin, pero he intentado desactivarlos todos y el problema persiste (me redirige a la página 404 de Wordpress).

Mientras tanto, he encontrado una solución temporal. Si creo un subdominio, algo cambia y todo funciona como debería, accediendo a la carpeta tanto mediante la ruta directa como a través del nombre del subdominio.

¿Alguna ayuda? He probado todo tipo de cosas con mis archivos .htaccess en ambos directorios, pero cambiarlos no hace nada.

Actualización: Aquí está el .htaccess de Wordpress en la carpeta raíz:

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

# INICIO WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?codeigniter/
RewriteRule . /index.php [L]
</IfModule>

# FIN WordPress

Y el archivo .htaccess de CodeIgniter en el subdirectorio /codeigniter/:

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /codeigniter
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
3
Comentarios

¿Puedes por favor agregar tu archivo .htaccess aquí?

User User
4 feb 2011 09:30:45

¿Tienes una copia de tu archivo .htaccess que pueda ver?

User User
4 feb 2011 09:32:16

@Jeff Wain - No tengo del todo claro cuál es tu pregunta. Parece que ya tienes una solución, entonces ¿qué es lo que estás buscando? Y en cuanto a los archivos .htaccess, ¿te funcionan o no?

MikeSchinkel MikeSchinkel
4 feb 2011 16:14:13
Todas las respuestas a la pregunta 1
2

Aunque los archivos y directorios estáticos funcionan con una instalación de WordPress que utiliza mod_rewrite en la raíz del servidor, es posible que necesites excluir tu subdirectorio de CodeIgniter de esa configuración de mod_rewrite.

Puedes hacerlo colocando un archivo .htaccess adicional en el directorio de CodeIgniter y desactivando mod_rewrite allí:

<IfModule mod_rewrite.c> 
RewriteEngine off
</IfModule>

Relacionado: apache - Desactivar mod_rewrite para subdirectorio

Normalmente esto funciona para mí. Pero puede ser menos trivial en caso de que ese subdirectorio necesite su propia configuración de mod_rewrite (como algunos frameworks PHP requieren).

Para entender cómo funciona la configuración de apache, por favor revisa Archivos de Configuración (Manual de Apache) y Directiva AllowOverride (Manual de Apache).

4 feb 2011 16:20:08
Comentarios

¡Vale, esto funciona! Lo he probado sin aplicar el subdominio y parece que está funcionando, pero veré con el tiempo si Wordpress decide sobrescribir cosas otra vez antes de eliminarlo. :)

Jeff Wain Jeff Wain
4 feb 2011 17:07:30

@Jeff Wain para evitar eso, simplemente colócalo en un archivo .htaccess propio (por ejemplo, en el subdirectorio). Wordpress solo modificará el archivo .htaccess en el directorio de instalación. Además puedes poner eso en la configuración del servidor Apache. Eso tampoco será sobrescrito por Wordpress.

hakre hakre
4 feb 2011 18:52:26