es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se interpretan las reglas de reescritura de Apache en combinación?

Todo esto tiene lugar en una pila LAMP dentro de un contexto . Estoy utilizando

RedirectPermanent / https://www.example.com/

para redirigir todas las peticiones http a https. También tengo antiguos enlaces rotos “http://…” entrantes que deseo redirigir, y este parece ser el mejor lugar para hacerlo, en lugar del lado https, lo cual implicaría enviar una redirección innecesaria a una página https no encontrada.

Si apilo las redirecciones de esta manera:

RedirectPermanent /especifico/2020/url1.php https://example.com/2021/url1.html
RedirectPermanent /especifico/2020/url2.php https://example.com/2021/url2.html
RedirectPermanent /especifico/2020/url2.php https://example.com/2021/url3.html
RedirectPermanent / https://example.com/

¿Existe algún conflicto potencial entre las redirecciones de “url#” y la redirección “/”?

No puedo encontrar nada en la documentación de Apache que explique cómo se interpretarían estas reglas en combinación. ¿Una coincidencia de patrón para “url1” termina el script de la misma manera que lo hace la bandera “L” con RewriteRule, por ejemplo?

¿O es posible que se aplique la línea “/ -> https” porque también hace una coincidencia?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según la documentación de Apache, las directivas de redirección múltiple se procesan en el orden en que aparecen en el archivo de configuración. Si hay directivas de redirección conflictivas, la más específica debería tener precedencia sobre la menos específica.

    En la configuración de ejemplo proporcionada, las directivas de redirección para las URL específicas son más específicas que la del directorio raíz, por lo que deben tener prioridad sobre éste. Siempre y cuando las URL específicas no sean subdirectorios del directorio raíz, no debería haber conflicto.

    Vale la pena señalar que la directiva RedirectPermanent utiliza un código de estado 301, lo que significa que los navegadores y los motores de búsqueda recordarán la redirección permanentemente. Si hay cambios en el futuro, puede ser mejor utilizar una redirección temporal en su lugar (utilizando la directiva Redirect en lugar de RedirectPermanent).

Comments are closed.