2012-01-16 10 views
5

Tengo una aplicación de django que tiene/al final de cada configuración de URL. Ejemplo:Hacer que las URL de Django funcionen con o sin/

# user home page 
(r'^home/$', 'user_home_page'), 

Sin embargo, estoy notando que esto está causando una tonelada de redirecciones en mi servidor, porque cuando la gente no añadir el /, se les redirige. ¿Hay alguna manera de tener que aceptar ambas cosas sin hacer una redirección, excepto:

# user home page 
(r'^home$', 'user_home_page'), 
(r'^home/$', 'user_home_page'), 

o debo evitar confs URL de esa manera?

Respuesta

7

Mientras tanto se puede aceptar sin hacer una redirección mediante el uso de:

(r'^home/?$', 'user_home_page'), 

no es la mejor práctica SEO, ya que se verá como tiene contenido duplicado y sus éxitos se dividirá entre las dos páginas.

2

debo evitar confs URL de esa manera?

Sí. Django ya maneja esto para ti.

ver esto: https://docs.djangoproject.com/en/1.3/ref/middleware/#module-django.middleware.common

Si APPEND_SLASH es verdadera y la URL inicial no termina con una barra, y que no se encuentra en la URLconf, a continuación, se forma una nueva URL por añadiendo un barra al final. Si esta nueva URL se encuentra en la URLconf, , Django redirige la solicitud a esta nueva URL. De lo contrario, la URL inicial se procesa como de costumbre.

5

Puede modificar su configuración de APPEND_SLASH Django, no lo he usado antes.

Usted puede preguntarse qué ocurre si alguien solicita la URL/hola (es decir, sin una barra diagonal). Debido a que nuestro URLpattern requiere una barra diagonal posterior , esa URL no coincidiría. Sin embargo, de forma predeterminada, cualquier solicitud a una URL que no concuerde con un patrón de URL y no finalice con se redirigirá a la misma URL con una barra inclinada. (Esto está regulado por el ajuste APPEND_SLASH Django, que es prevista en el Apéndice D.)

Esto fue tomado de http://djangobook.com/en/2.0/chapter03/

0

Usted necesita asegurarse de que la aplicación utiliza/constantemente, hacer una elección a la que utilizar y 301 redirigir la variación deshonesta a la correcta canónica.

Solo debe haber una versión de una página, y la solución correcta en la mayoría de los casos es 301 para redirigir a la versión canónica.

En algunas situaciones con parámetros adicionales para el seguimiento, también debe definir un canónico en la cabeza.

Al usar URL consistentes dentro de su APLICACIÓN y en la web en enlaces que apuntan hacia su aplicación, entonces no tendrá muchos redireccionamientos.

Cuestiones relacionadas