WordPress enlace permanente ‘no encontrado en este servidor’

2 minutos de lectura

Yo solo movió un WordPress sitio al nuevo host. Pero cuando voy a cualquier página excepto a la página de INICIO, aparece este error:

Not Found

The requested URL /about was not found on this server.

Apache/2.2.16 (Debian) Server at 176.xx.yy.zz Port 80

Cambié la configuración de Permalink a Predeterminada, lo que hace que la URL se vea como mysite.com/?page_id=5 y la página se muestra bien. Así que el problema no está en mi código.

Mi primera conjetura es mod_rewrite no está habilitado. Pero phpinfo() me dice que mod_rewrite se carga correctamente.

Mi .htaccess se genera automáticamente y se parece a:

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

¿Alguna solución?

Gracias

avatar de usuario
Vaibs_Cool

Necesitas editar tu Apache http.conf archivo y

cambio #LoadModule rewrite_module modules/mod_rewrite.so

a LoadModule rewrite_module modules/mod_rewrite.so

En las versiones de Apache2 donde http.conf ya no está presente (es decir, ubuntu), puede usar el comando a2enmod rewrite para habilitar el módulo.

  • Gracias por la respuesta. Si el mod_rewrite se muestra en phpinfo(), ya debería estar sin comentar ¿no? no puedo comprobar el http.conf porque no tengo acceso a ella.

    – hsetyono

    26 de septiembre de 2013 a las 3:41

  • No tengo httpd.conf ni ningún archivo que cargue #LoadModule rewrite_module. Grepeé todo el servidor.

    – usuario734063

    7 de noviembre de 2014 a las 19:27

Suponiendo que su archivo .htaccess esté en su lugar, lo más probable es que esto se deba a que el módulo de reescritura de Apache no está habilitado en su nuevo servidor. En Ubuntu haz esto:

sudo a2enmod rewrite
sudo apache2ctl restart

avatar de usuario
Suyash jainista

Creo que esto también podría deberse a estos tres problemas.

  1. AccessFileName .htaccess está comentado en su configuración de apache.
  2. AllowOverride ALL no se menciona en su configuración de apache para la ruta de wordpress.

  • Para apache 2.4.6, AllowOverride None es lo que se da en httpd.conf. lo cambié a AllowOverride All y los enlaces permanentes comenzaron a funcionar.

    – eclipsis

    27 de febrero de 2014 a las 0:31

avatar de usuario
SHAKIR SHABBIR

Esto podría ser un problema con las rutas definidas en la regla de reescritura

Considere cambiar lo siguiente en las reglas de reescritura en el archivo .htaccess

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

Eso funcionó para mí.

avatar de usuario
mrpezzal

Esto es simple, ejecuta:

shell > a2enmod rewrite enable

Si está ejecutando apache2.

¿Ha sido útil esta solución?