¿Cómo maneja WordPress las URL?

4 minutos de lectura

avatar de usuario
pedrolalangosta

Encontré este (para mí) comportamiento desconocido en WordPress.

Considere un sitio aleatorio usando WordPress con una página llamada ejemplo sin contenido. Esta es solo una publicación de tipo página y no una categoría, etiqueta o cualquier tipo de jerarquía. Se activa un error 404 si agrego caracteres después del último “https://stackoverflow.com/”:

http://ejemplo.com/ejemplo/abc

Espero eso, pero si solo escribo números después del “https://stackoverflow.com/” final, no se activa ningún error 404. Por ejemplo cargando:

http://ejemplo.com/ejemplo/1123456

me lleva a ejemplo página y los números se mantienen en la URL. Los números no tienen un significado especial en este caso. Podría haber cualquier nuber allí, pero esperaría que active un 404 como lo hace en otros sitios.

Agregar números a la URL en páginas de índice o categoría todavía parece activar un 404, pero no en publicaciones y páginas.

Me pregunto si esta es una característica real de WordPress y, de ser así, ¿cuál es su propósito?

  • Que es EXTRA_CHARACTERS ? ¿Página/Publicación/Categoría?

    – Manos amigas

    1 de diciembre de 2015 a las 6:50

  • @HelpingHands En realidad, solo son personajes. Entonces, si escribo caracteres después del slug/nombre de la página en la URL, obtengo 404, pero si escribo números, se me dirige a la página real con números en la URL.

    – Peter La Langosta

    1 de diciembre de 2015 a las 6:56

  • ¿Ese número es el id de la página/publicación?

    – Manos amigas

    1 de diciembre de 2015 a las 7:05

  • lo que estas usando es bastante enlaces permanentes consulta esta pagina codex.wordpress.org/Using_Permalinks

    – Sugumar Venkatesan

    1 de diciembre de 2015 a las 7:05

  • @HelpingHands Sí, es una identificación de una publicación. Pero la pregunta es general: si voy a una URL de una página con números adjuntos, ¿llegaré siempre a la página a la que conduce la URL (sin los números)? Agregar caracteres genera 404, pero agregar números no. He probado esto en varias páginas que usan WordPress y siempre parece ser el caso, que agregar números a una URL de página no parece causar 404 y aún conduce a la página misma.

    – Peter La Langosta

    1 de diciembre de 2015 a las 7:11


avatar de usuario
Gary

Esto es como fue diseñado. WordPress hace coincidir las URL a través del módulo de reescritura incorporado. Puedes leer sobre eso aquí. Además, el código fuente para seguir lo que sucede con este proceso se encuentra en wp-content/class-wp-rewrite.php.

La línea específica que proporciona el comportamiento que está viendo está debajo.

[(.?.+?)(?:/([0-9]+))?/?$] => index.php?pagename=$matches[1]&page=$matches[2]

Este código coincidirá con la página/nombre de la publicación y cualquier número siguiente (esto admite la paginación). Sin embargo, no coincidirá con los caracteres que no sean después del nombre de la publicación. Lo interesante es que incluso si la publicación no tiene la página especificada, aún se aceptará como legítima.

Sí, sería extraño, pero posiblemente por diseño.

http://ww.example.com/mypage/ 200 (esperado)

http://ww.example.com/mypage/idontexist 404 (esperado)

Pero:

http://ww.example.com/mypage/0000 200 (inesperado)

Creo que puede tener que ver con la forma en que WP funciona con las ID y las fechas del archivo como parte de la estructura/reescrituras de enlaces permanentes.

Como todos sabíamos, WordPress funciona a través del módulo de reescritura incorporado. Por lo tanto, también le dará la función de enlaces permanentes para todas sus publicaciones, puede configurar sus enlaces permanentes a través de ella. Veamos los detalles aquí sobre los enlaces permanentes a través de un blog basado en WordPress. Aquí vamos con el enlace http://codex.wordpress.org/Introduction_to_Blogging#Pretty_Permalinks

Si desea reestructurar toda su URL, debe editar este archivo.

$permalink_structure 

La estructura de enlaces permanentes como en la base de datos. Esto es lo que establece en la página Opciones de enlace permanente e incluye 'tags' like %year%, %month% and %post_id%.

Para obtener más detalles sobre la estructura de enlaces permanentes, puede visitar este enlace.
http://codex.wordpress.org/Class_Reference/WP_Rewrite

¿Ha sido útil esta solución?