Después de la migración del servidor, solo funciona la página de inicio

33

Recientemente he cambiado el alojamiento de mi sitio de WordPress a VPS.net . Moví todos mis archivos e importé la base de datos. Todo parecía estar bien hasta que hice clic en un enlace y noté que todas mis páginas están devolviendo un 404, excepto la página de inicio.

La URL del sitio es http://inksquared.com

mikeyrocks
fuente

Respuestas:

42

Supongo que obtienes http: // yoursite pero http: // yoursite / cualquier cosa

Tuve un problema similar y se resolvió cuando cambié

el httpd.confde

AllowOverride None

a

AllowOverride All

Según tengo entendido, hará que .htaccesssurta efecto.

San
fuente
66
Este me funcionó. La mayoría de la gente se olvida de esto.
qasimzee
1
Esto también funcionó para mí, solo tuve que cambiarlo en la sección de apache2.confubicación de los archivos de mi servidor, /var/wwwen mi caso
2015
1
Esta fue parte de la respuesta para mí. Agregué AllowOverride Alla la configuración del sitio, pero también agregué Options FollowSymLinks. Luego pude usar enlaces permanentes personalizados, que también crearon un archivo raíz .htaccess apropiado. Después de eso todo funcionó.
boot13
1
¡Y no olvides reiniciar apache! "sudo service apache2 restart"
gradosevic
1
Funcionó. Asegúrese de cambiar la opción AllowOverride en ubicaciones en el archivo conf.
Najeeb
44

Intenta enjuagar tus reglas mod_rewrite:

Panel de control -> Configuración -> Enlaces permanentes

Guardar configuración (no es necesario realizar ningún cambio)

Chip Bennett
fuente
77
No hay necesidad de guardar, en realidad. Las reglas se eliminan simplemente visitando esa página, y parte de eliminar las reglas implica escribir en .htaccess.
John P Bloch
Aprendo algo nuevo todos los días ... :)
Chip Bennett
@john, ¿estás seguro de que solo las cargas de página escriben en .htaccess si es necesario? Tenía la impresión de que solo las rewrite_rules en la base de datos se vacían.
Ashfame
wp-admin / options-permalinks.php llama flush_rewrite_rules(), un contenedor para el WP_Rewrite::flush_rules()cual, si $hardes true(que es cuando se llama en esa página) y la función save_mod_rewrite_rulesexiste (definida en wp-admin/includes/misc.php, incluida en todas las páginas de administración), llama save_mod_rewrite_rules(). Vea la definición de esa función aquí: core.trac.wordpress.org/browser/trunk/wp-admin/includes/…
John P Bloch
La función que realmente escribe las reglas de reescritura en .htaccess se llama insert_with_markers(utilizada en el apartado save_mod_rewrite_rules()anterior), definida aquí: core.trac.wordpress.org/browser/trunk/wp-admin/includes/…
John P Bloch el
27

Me había enfrentado al mismo problema.

Hice lo siguiente para resolverlo en un servidor Ubuntu:

  1. En /etc/apache2/apache2.conf , edite AllowOverride None para / var / www / to AllowOverride All

  2. Escriba el siguiente comando para habilitar mod_rewrite para .htaccess

sudo a2enmod reescribir

  1. Reinicie su servidor apache:

servicio sudo apache2 reiniciar

El problema resuelto !!!

Avinash
fuente
Gracias, no pude solucionar esto con ninguna de las otras sugerencias, pero a2enmod rewritehice el truco.
Martin McCallion
+1 Por mencionar el mod de reescritura. No me di cuenta de que esto no estaba habilitado por defecto.
Codificador nativo
Definitivamente lo necesitaba sudo a2enmod rewritepara conseguir este trabajo, ¡gracias!
Huskie69
1
¡Gracias! El comando a2enmod rewritehizo el truco para mí.
Lucas Basquerotto
Gracias avinash! Lo mismo con Lucas, la reescritura de a2enmod hizo el truco para mí
Jero Dungog
1

La razón más probable es que el .htaccessarchivo no se haya copiado. En Mac OS X, y en algunas aplicaciones FTP, este archivo se considera "oculto" porque comienza con a .. Si va a la sección Configuración -> Enlaces permanentes en su sección de administración, puede volver a generar este archivo, pero probablemente sea mejor encontrar la versión que tenía anteriormente y usarla nuevamente (especialmente si usa un complemento de almacenamiento en caché).

Gavin Anderegg
fuente
1

En Ubuntu 14.04: el archivo 000-default.conf se puede encontrar aquí/etc/apache2/sites-available

O si ejecuta múltiples wp, la configuración del host virtual sería su nombre de archivo de configuración. por ejemplo, domain.conf

Tienes que reemplazar AllowOverride NoneaAllowOverride All

Espero que esto funcione.

Sam
fuente
0

¿Obtiene un servidor web 404 o un WordPress 404? Si se trata de un servidor web 404, lo más probable es que no haya copiado el archivo htaccess raíz de la instalación anterior, o no tiene los permisos correctos para ejecutarse.

Mi primer elemento de solución de problemas sería verificar y ver si existe un archivo htaccess en la raíz. Y si es así, qué contiene.

MathSmath
fuente
Comprueba el archivo .htaccess. Contiene el mismo código que apareció en la sección de enlace permanente del panel de administración de WordPress. Cambié los permisos a escribibles y no puedo ver cambios aparentes.
mikeyrocks
3
@mikeyrocks Hmm ... otra posibilidad es que su nuevo servidor no tenga mod_rewrite activado. Importante: ¿está obteniendo un servidor 404 (página blanca simple que dice "no encontrado") o un WordPress 404 (con el estilo del resto de su sitio)?
MathSmath