Problema con subdirectorios en .htaccess de Wordpress
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>

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).

¡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 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.
