2010-08-10 20 views
15

Quiero tener casos URL insensibles utilizando el módulo de Apache mod_speling, pero esta es la producción de listas no deseadas de "múltiples opciones", mientras que el documention Apache dicecaso mod_speling Apache URL insensibles emisión

Cuando se establece, esta directiva limita el acción de la corrección ortográfica a cambios de mayúsculas/minúsculas. Otras correcciones potenciales no se realizan.

Estoy probando esto en una fresca Apache 2.2.16 Unix instalar, pero todavía estoy corriendo en exactamente los mismos problemas expuestos en 2008.

Se inesperada (y no quería) comportamiento cuando Apache enumera algunas "opciones múltiples" (código de estado 300) cuando la directiva checkCaseOnly está activada.

tengo esto en mi httpd.conf:

CheckSpelling on 
CheckCaseOnly on 

primera directiva para utilizar la mod_speling, segunda directiva para limitar únicamente a las correcciones de casos

¿Qué estoy haciendo mal?

+1

¿Alguna vez resolvió esto? Estoy corriendo hacia el mismo problema. –

Respuesta

2

¿Realmente desea URL insensible a mayúsculas y minúsculas?
¿Por qué no forzar urls en minúsculas como esta?

RewriteEngine On 
RewriteMap lc int:tolower 
RewriteRule (.*) ${lc:$1} [R] 

Tenga una mirada en http://www.issociate.de/board/post/265865/make_URL

+1

Cuando hago esto, me sale un error interno del servidor 500 .... – Shackrock

+1

En realidad esto es todo tipo de mal ahora que lo he intentado. Incluso el rewriteRule es realmente incorrecto aquí ... – Shackrock

+0

¿Qué pasa si tienes una caja de camello? No funcionará –

10

Para habilitar mod_speling (ya sea por la ubicación o el host virtual) utiliza la directiva:

CheckSpelling En

Si lo que quieres es caso de uso insensibilidad:

CheckCaseOnly En

8

En Ubuntu 12.04 LTS usando Apache 2.2, que hizo lo siguiente:

  1. Crear speling.conf en ${APACHE}/mods-available para proporcionar las opciones de configuración.

    <IfModule mod_speling.c> 
        CheckSpelling On 
        CheckCaseOnly On 
    </IfModule> 
    
  2. Enlace speling.conf y speling.load en el directorio de módulos habilitados ${APACHE}/mods-enabled:

    # cd ../mods-enabled 
    # ln -s ../mods-available/speling.conf speling.conf 
    # ln -s ../mods-available/speling.load speling.load 
    
  3. Reinicie el servidor.

    # service restart apache2 
    
8

TLDR: CheckCaseOnly se rompe debido a un error que se ha mantenido sin fijar durante más de seis años a partir de 10/2014.

Sé que esta es una pregunta anterior, pero me encontré con el mismo problema. Esta actualización es para ayudar a otros con el mismo problema.

Las respuestas actuales a esta pregunta son incorrectas, ya que el OP está utilizando mod_speling correctamente, pero hay un error.

https://issues.apache.org/bugzilla/show_bug.cgi?id=44221

La cuestión de fondo es que el pueblo apache están en desacuerdo sobre la fijación de este comportamiento, ya que cambia el resto del módulo. Esto ha permanecido sin corregir por algo así como 6 años.