No se puede acceder a los subdirectorios que no son de wordpress porque wordpress los anula con un error 404

30

Me refiero a esta pregunta previamente formulada y no contestada adecuadamente: Wordpress reemplaza los subdirectorios reales y también Páginas / código de "Wordpress" no obteniendo el error 404

Tengo el mismo problema y he intentado casi todo lo que encontré en la red. Definitivamente está relacionado con tener los enlaces permanentes activados en wordpress. Sin embargo, he puesto un nuevo archivo .htaccess en el subdirectorio con:

RewriteEngine off

y el problema sigue existiendo. Incluso si elimino completamente el archivo wordpress .htaccess, el problema aún existe.

También he intentado algunas otras soluciones sugeridas como ErrorDocument 401 "Acceso no autorizado" y ErrorDocument 404 "Acceso no autorizado" y Redirigir 301 / mysubdirectory enlace en varios lugares, todo en vano.

¿Alguien puede ofrecer otra solución? La única forma en que puedo solucionarlo es desactivar los enlaces permanentes, pero necesitamos que estén encendidos.

Gracias,

Nicole

    
pregunta Nicole 16.06.2011 - 09:54

8 respuestas

27

Supongo que colocas WordPress en la raíz de tu sitio y que los directorios externos también están en la raíz de tu sitio. La razón por la que esto sucede es que los archivos .htaccess siguen una jerarquía. Cualesquiera que sean las directivas en el archivo .htaccess de nivel superior, el flujo hacia abajo y se aplica a todos los directorios debajo de él.

Si este es el caso, puedes hacer una de varias cosas:

  1. Mueva su WordPress a su propio directorio. Consulte: enlace Si mueve WordPress a su propio directorio para que se encuentre en el mismo nivel en la jerarquía de directorios del servidor que los otros directorios, las reglas de reescritura de WordPress no pueden afectar a los otros directorios.

  2. RewriteEngine Off: esto normalmente funciona. Si no está funcionando, compruebe que no está utilizando una configuración de DNS comodín. Si tiene un registro de nombre de host comodín * que apunta a su servidor web en su configuración de DNS, puede causar estragos en .htaccess y subdominios.

  3. En el archivo .htaccess en la raíz de su sitio, agregue lo siguiente ANTERIOR a las directivas .htaccess de WordPress:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    </IfModule>
    

Uno de estos debería funcionar para ti.

    
respondido por el Elpie 17.06.2011 - 16:33
17

Esto me ha funcionado en el pasado para una situación similar:

Ponga esto encima de .htaccess

ErrorDocument 401 default
    
respondido por el mike23 16.06.2011 - 11:39
3

cuando copio mis archivos en el mismo servidor pero con una carpeta de subdirectorios diferente, así que cuando intenté acceder a mis páginas, index.php funciona bien pero las otras páginas no lo están y me da un error 404. ¡¡Lo siento por mi mal inglés !!

Acabo de ver en mi htaccess el original:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

y poner el nuevo con

# BEGIN WordPress

RewriteEngine On
RewriteBase /subdirectoryfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryfolder/index.php [L]

# END WordPress
    
respondido por el lizette 13.09.2012 - 13:14
3

Veo que este hilo tiene algunos meses de antigüedad, ¡pero en caso de que nunca lo hayas hecho funcionar!

Tuve un problema similar, pero mi problema era que la instalación de wordpress se encontraba en el subdirectorio, lo que impedía el acceso de URL a las carpetas dentro de la raíz (fuera del directorio de instalación de WP), pero solo cuando los enlaces permanentes estaban habilitados. Para resolver esto, copié tanto index.php como .htaccess (copia no mover) del subdirectorio donde se encuentra la instalación de WP y los coloqué en la raíz public_html (o en cualquier subdirectorio al que intentas acceder desde fuera de la instalación de WP). directorio). El archivo .htaccess ya tiene las condiciones de reescritura para los enlaces permanentes:

RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Habilite los enlaces permanentes para la actualización y resolvió todos los problemas. Asegúrese de que sus permisos para las carpetas raíz estén configurados correctamente también, ya que esto me ha causado problemas en el pasado.

    
respondido por el Kirsten Douglas 25.05.2012 - 20:46
2

Si aún obtienes 404 con el htaccess deshabilitado y has verificado las rutas y sabes que los archivos están ahí, entonces tus únicas opciones son estas tres ...

Opciones ...

  1. El servidor posiblemente esté ejecutando un sistema operativo que distingue entre mayúsculas y minúsculas. Lo que significa que si está escribiendo una ruta y no está usando los caracteres exactos y la caja, simplemente no funcionará.
  2. Permisos: es posible que tenga los permisos incorrectos en el archivo o carpeta o en una carpeta principal. Intente cambiar los permisos a 755 en los archivos, carpetas y carpetas principales. Si tiene acceso a ssh (terminal), vaya a su raíz y ejecute este "chmod -R 755 mydir" y eso establecerá recursivamente los permisos para todos ellos.
  3. Si todavía tiene un problema después de todo eso, entonces tiene un problema de configuración del servidor (Apache probablemente). Deberá hablar con su proveedor de alojamiento al respecto.

Si nada de eso funciona, entonces necesitas un nuevo host. Recomiendo hostmonster.com para alojamiento barato que tiene un gran soporte y ofrece acceso SSH. Yo los uso, cuesta alrededor de $ 5 por mes. Si necesita algo que sea más robusto y escalable, pero que aún tenga buenos precios, le recomiendo mediatemple.net. Ofrecen alojamiento en la nube escalable a partir de $ 20 por mes. Aunque solo optaría por la segunda opción si espera ver aumentos dramáticos en el tráfico o ya tiene un tráfico muy alto (estoy hablando de 500-1,000 + por hora).

    
respondido por el pthurmond 17.06.2011 - 16:44
2

Después de casi arrancarme el pelo editando htaccess, finalmente encontré una solución que funcionará para WordPress.

Tuve este problema después de instalar un script de codeiginter en el mismo directorio raíz en el que está instalado WordPress.

Después de probar todos los trucos aquí enumerados, seguía recibiendo errores 404 en las páginas asociadas con el nuevo script.

Noté que el htaccess de WordPress estaba sobrepasando 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é a la carpeta donde se encuentra 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>

Reemplace subdirectoryname con el nombre de su directorio y coloque este archivo htaccess dentro de la carpeta donde se encuentra su script.

Ejemplo: si el sitio está instalado aquí

public_html/

y la nueva carpeta se encuentra

'public_html/example'

copie el htaccess de arriba y guárdelo dentro de la carpeta 'ejemplo' y esto debería funcionar.

    
respondido por el NJENGAH 10.12.2015 - 14:59
0

Debería poder simplemente agregar una directiva RewriteCond que se asegurará de que las reglas de WordPress se ignoren para las solicitudes dentro de su subcarpeta.

RewriteCond %{REQUEST_URI} !^/mysubdirectory
# rest of WordPress rewrite rules

Sin embargo, ¿dices que incluso con no WordPress .htaccess estás experimentando el problema? ¿Cuál es el contenido de su subdirectorio .htaccess ?

    
respondido por el TheDeadMedic 16.06.2011 - 10:58
0

He mirado las respuestas aquí varias veces, ya que me encontraba con un problema similar. Tengo archivos en un subdirectorio que arrojaría un error 404 cuando intenté acceder a ellos. Todas las cosas de .htaccess no pudieron rectificarlo, como dice Kirsten Douglas, Wordpress ya hace el trabajo.

Mi solución

Encontré esto artículo después de comprobar el error_log en el servidor. Recibí un mensaje sobre el uid incorrecto para los scripts. También me di cuenta de que el 404 no se lanzaba debido al archivo, sino porque el servidor no podía mostrar un archivo 500.html, es decir, tenía un error 500.

Resulta que yo había creado archivos como root y necesitaba cambiar la propiedad del propietario de los archivos web.

¡Espero que esto ayude a otros que han tenido el mismo problema!

    
respondido por el Dan 02.10.2013 - 09:54

Lea otras preguntas en las etiquetas