No se puede acceder a subdirectorios que no son de WordPress ya que WordPress los sobrescribe con un error 404
Me refiero a esta pregunta previamente realizada y no respondida adecuadamente: WordPress sobrescribiendo subdirectorios actuales y también Páginas/código que no son de "WordPress" obteniendo error 404
Tengo el mismo problema y he intentado casi todo lo que encontré en internet. Definitivamente está relacionado con tener los permalinks activados en WordPress. Sin embargo, he puesto un nuevo archivo .htaccess en el subdirectorio con:
RewriteEngine off
y el problema aún persiste. Incluso si elimino completamente el archivo .htaccess de WordPress, el problema continúa.
También he probado otras soluciones sugeridas como ErrorDocument 401 "Acceso no autorizado" y ErrorDocument 404 "Acceso no autorizado" y Redirect 301 /misubdirectorio http://www.midominio.com/misubdirectorio/index.html en varias ubicaciones, todo sin éxito.
¿Puede alguien por favor ofrecer otra solución? La única forma en que puedo arreglarlo es desactivando los permalinks, pero necesitamos tenerlos activados.
Gracias,
Nicole

Asumo que has instalado WordPress en el directorio raíz de tu sitio y que los directorios externos también están en la raíz. La razón por la que esto ocurre es que los archivos .htaccess siguen una jerarquía. Las directivas que están en el archivo .htaccess de nivel superior se aplican a todos los directorios inferiores.
Si este es el caso, puedes hacer varias cosas:
Mueve tu WordPress a su propio directorio. Consulta: http://codex.wordpress.org/Moving_WordPress Si mueves WordPress a su propio directorio, de modo que esté al mismo nivel en la jerarquía del servidor que los otros directorios, las reglas de reescritura de WordPress no afectarán a los otros directorios.
RewriteEngine Off - esto normalmente funcionaría. Si no está funcionando, verifica que no estés usando una configuración DNS con comodín. Si tienes un registro * de nombre de host apuntando a tu servidor web en la configuración DNS, puede causar problemas con .htaccess y subdominios.
En el archivo .htaccess en la raíz de tu sitio, añade lo siguiente ENCIMA de las directivas de WordPress:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR] RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR] RewriteRule ^.*$ - [L] </IfModule>
Una de estas opciones debería funcionarte.

¡Gracias! He probado muchas cosas, pero esta es la única solución que funcionó para mi caso: subdirectorio protegido con contraseña

También me funcionó, ¿alguna explicación sobre qué hace y por qué funciona?

Si todavía estás recibiendo errores 404 con el htaccess deshabilitado y has verificado las rutas y sabes que los archivos están allí, entonces tus únicas opciones restantes son estas tres...
Opciones...
- El servidor posiblemente esté ejecutando un sistema operativo sensible a mayúsculas y minúsculas. Lo que significa que si estás escribiendo una ruta y no usas los caracteres exactos y las mayúsculas/minúsculas correctas, simplemente no funcionará.
- Permisos: Puede que tengas los permisos incorrectos en el archivo, carpeta o una carpeta padre. Intenta cambiar los permisos a 755 en los archivos, carpetas y carpetas padre. Si tienes acceso ssh (terminal) a él, entonces ve a tu raíz y ejecuta esto "chmod -R 755 midirectorio" y eso establecerá recursivamente los permisos para todos ellos.
- Si todavía tienes un problema después de todo eso, entonces tienes un problema de configuración del servidor (probablemente Apache). Necesitarás hablar con tu proveedor de hosting sobre ello.
Si nada de eso funciona, entonces necesitas un nuevo host.

Veo que este hilo tiene algunos meses, pero por si acaso nunca lograste que funcionara.
Tuve un problema similar, pero mi problema era que la instalación de WordPress estaba ubicada en un subdirectorio lo que impedía el acceso a URL de carpetas dentro del root (fuera del directorio de instalación de WP), pero solo cuando los permalinks estaban habilitados. Para solucionarlo, copié tanto el index.php como el .htaccess (copiar, no mover) desde el subdirectorio donde está instalado WP y los coloqué ambos en el root public_html (o cualquier subdirectorio que estés intentando acceder fuera del directorio de instalación de WP). El archivo .htaccess ya tiene las condiciones de reescritura para los permalinks:
RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Habilita los permalinks para refrescar y esto resolvió todos los problemas. Asegúrate de que los permisos para las carpetas root estén configurados correctamente también, ya que esto me ha causado problemas en el pasado.

Cuando copio mis archivos al mismo servidor pero en una subcarpeta diferente, al intentar acceder a mis páginas, index.php funciona bien pero las otras páginas no y me dan un error 404. ¡Perdón por mi mal inglés!
Revisé mi archivo htaccess original:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
y puse el nuevo con
# BEGIN WordPress
RewriteEngine On
RewriteBase /subdirectorio
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectorio/index.php [L]
# END WordPress

Hola @lizette. Bienvenida a los foros de WPSE. Quizás quieras revisar cómo funciona el formato aquí.

Después de casi arrancarme el cabello editando el htaccess, finalmente encontré una solución que funcionará para WordPress.
Tuve este problema después de instalar un script de CodeIgniter en el mismo directorio raíz donde está instalado WordPress.
Después de probar todos los trucos mencionados aquí, seguía obteniendo errores 404 en las páginas asociadas con el nuevo script.
Noté que el htaccess de WordPress estaba sobrescribiendo el htaccess del script. También noté que otras instalaciones de WordPress en el mismo directorio no tenían este error 404.
Simplemente adopté el htaccess de la nueva instalación de WordPress en el mismo directorio del servidor y lo agregué en la carpeta donde está ubicado mi script. Así es como se ve:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subdirectoryname/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryname/index.php [L]
</IfModule>
Reemplaza subdirectoryname con el nombre de tu directorio y coloca este archivo htaccess dentro de la carpeta donde está ubicado tu script.
Ejemplo: Si el sitio está instalado aquí
public_html/
y la nueva carpeta está ubicada en
`public_html/ejemplo`
copia el htaccess de arriba y guárdalo dentro de la carpeta 'ejemplo' y esto debería funcionar.

He revisado las respuestas aquí varias veces porque me encontré con un problema similar. Tenía archivos en un subdirectorio que generaban un error 404 cuando intentaba acceder a ellos. Todas las soluciones con .htaccess no funcionaron, como dice Kirsten Douglas, WordPress ya hace ese trabajo.
Mi solución
Encontré este artículo después de revisar el error_log en el servidor. Estaba recibiendo un mensaje sobre un uid incorrecto para los scripts. También noté que el 404 no se generaba por el archivo, sino porque el servidor no podía servir un archivo 500.html, es decir, tenía un error 500.
Resulta que había creado los archivos como root, y necesitaba cambiar la propiedad al dueño de los archivos web.
¡Espero que esto ayude a otros que hayan tenido el mismo problema!

Deberías poder simplemente agregar una directiva RewriteCond
que asegure que las reglas de WordPress sean ignoradas para solicitudes dentro de tu subcarpeta.
RewriteCond %{REQUEST_URI} !^/misubdirectorio
# resto de las reglas de reescritura de WordPress
Sin embargo, mencionas que incluso sin el archivo .htaccess
de WordPress estás experimentando el problema. ¿Cuál es el contenido del archivo .htaccess
en tu subdirectorio?
