Problemas de enlaces permanentes al instalar WordPress en subdirectorio / subcarpeta

6 oct 2012, 11:03:34
Vistas: 21.1K
Votos: 4

Instalé WP en la subcarpeta /cms y se ejecuta en vivo sin subcarpeta. Cuando uso /%postname%/ como enlace permanente, obtengo un error 404 en mi sitio. Mi servidor tiene soporte para mod_rewrite.

Mi Código

wp-config.php

define('WP_SITEURL', 'http://www.sitename.de/cms');
define('WP_HOME', 'http://www.sitename.de');

raíz

1) .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cms/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /cms/index.php [L]
</IfModule>

2) index.php

<?php
define('WP_USE_THEMES', true);
require('./cms/wp-blog-header.php');
?>  

/cms

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

2) index.php

<?php
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
?>  

Gracias por tu ayuda
Ogni

0
Todas las respuestas a la pregunta 4
1

Lo que generalmente hago

  • Instalar WordPress en un subdirectorio.
  • Abrir los enlaces permanentes y configurar la estructura deseada.
  • Abrir ajustes->enlace general
  • Eliminar el nombre del subdirectorio de 'Dirección del sitio (URL)'
  • Cortar los archivos index.php y .htaccess del subdirectorio y pegarlos en la raíz
  • Cambiar el código en index.php como lo hiciste.
  • Acceder nuevamente a ajustes->enlaces permanentes y guardar el formulario

Listo. No necesitas los archivos index.php y .htaccess en el subdirectorio.

4 sept 2013 22:59:19
Comentarios

Curiosamente, esto va en contra de lo que dice el codex Giving_WordPress_Its_Own_Directory. Allí mencionan que hay que mantener una copia de ambos archivos index.php y .htaccess. ¿Alguna pista sobre esto?

Nota: No soy un experto en .htaccess, y todavía hay algo que no me queda claro sobre cómo deberían verse esos archivos en cada carpeta.

superjos superjos
28 ene 2014 12:07:38
1

Tuve un problema similar y el problema no estaba en el código sino en el archivo httpd

  1. Abre el archivo de configuración de Apache ubicado en /etc/httpd/conf/httpd.conf (o apache.conf para ubuntu)
  2. Cambia AllowOverride None por AllowOverride All dentro de la directiva Directory del DocumentRoot, normalmente
5 ago 2013 11:27:18
Comentarios

Esto me salvó el día. Cuando las instrucciones habituales no funcionan, algo raro está pasando. Supongo que esto debería agregarse al manual del codex sobre cómo cambiar a una subcarpeta.

Ehsan88 Ehsan88
21 ago 2020 07:17:33
1

mi solución para este problema, que siempre funciona en mi caso:

crea un archivo .htaccess en el subdirectorio y agrega el código que se genera cuando cambias los permalinks al final de la página.

ejemplo del código generado:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /kimco/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /kimco/index.php [L]
</IfModule>
15 oct 2013 18:34:07
Comentarios

¿Estás diciendo que ambos archivos .htaccess (en el directorio raíz y subdirectorio) deberían tener el mismo contenido? Por ejemplo, ¿ambos con RewriteBase /kimco/?

superjos superjos
28 ene 2014 12:11:55
3

Elimina el archivo .htaccess en la carpeta /cms y luego ve a Ajustes -> Enlaces permanentes para actualizar las reglas de reescritura. También asegúrate de que la URL del sitio y la URL de inicio estén configuradas correctamente en la base de datos (como las tienes en el wp-config).

6 oct 2012 17:31:55
Comentarios

si defines las URLs del sitio y home en wp-config, lo que haya en la base de datos será ignorado

Milo Milo
6 oct 2012 18:27:56

@Milo: Así es
Cuando actualizo mis enlaces permanentes (área de admin de wp), el .htaccess raíz se ve así: .. RewriteBase / ... RewriteRule . /index.php [L] pero creo que debería verse así: ... RewriteBase /cms ... RewriteRule . /cms/index.php [L]

ogni ogni
6 oct 2012 21:40:35

en la raíz, creo que debería verse como RewriteBase / como aparentemente lo hace después de actualizar los enlaces permanentes. ¿Eso lo resolvió?

commonpike commonpike
8 feb 2013 19:04:50