2010-08-10 12 views
15

Ich möchte Groß- und Kleinschreibung URLs haben, mit mod_speling Moduls Apache, aber das ist unerwünschte Listen von „mehreren Optionen“ produziert, während der Apache Dokumention sagtApache mod_speling Groß- und Kleinschreibung URLs Problem

Wenn gesetzt, diese Richtlinie an die Grenzen Aktion der Rechtschreibkorrektur auf Klein-/Großbuchstabenänderungen. Andere mögliche Korrekturen werden nicht durchgeführt.

Ich teste diese auf einem Apache 2.2.16 Unix frisch installieren, aber ich laufe noch genau in den gleichen Probleme wie

im Jahr 2008 vorgelegt Es ist unerwartet (und nicht will) Verhalten, wenn Apache listet einige "multiple choices" (Statuscode 300) auf, wenn die checkCaseOnly-Direktive aktiviert ist!

Ich habe dies in meinem httpd.conf:

CheckSpelling on 
CheckCaseOnly on 

Erste Richtlinie die mod_speling, zweite Richtlinie zu verwenden, nur zu Fall Korrekturen

Was zu begrenzen mache ich falsch?

+1

Haben Sie das jemals gelöst? Ich laufe auf dasselbe Problem zu. –

Antwort

2

Möchten Sie wirklich die URL ohne Berücksichtigung der Groß- und Kleinschreibung?
Warum erzwingen Sie nicht nur kleingeschriebene URLs, so?

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

Werfen Sie einen Blick auf http://www.issociate.de/board/post/265865/make_URL

+1

Wenn ich das mache, bekomme ich einen 500 internen Serverfehler .... – Shackrock

+1

Eigentlich ist das alles falsch, jetzt, wo ich es ausprobiert habe. Selbst die rewriteRule ist hier eigentlich falsch ... – Shackrock

+0

Was ist, wenn du einen Camel Case hast? Wird nicht funktionieren. –

10

Um mod_speling (entweder nach Standort oder Virtualhost) verwenden die Richtlinie zu aktivieren:

CheckSpelling Auf

Wenn alles, was Sie Groß- und Kleinschreibung verwendet werden soll:

CheckCaseOnly On

8

auf Ubuntu 12.04 LTS Apache mit 2.2, habe ich folgende:

  1. erstellen speling.conf in ${APACHE}/mods-available die Konfigurationsmöglichkeiten zur Verfügung zu stellen.

    <IfModule mod_speling.c> 
        CheckSpelling On 
        CheckCaseOnly On 
    </IfModule> 
    
  2. Link-speling.conf und speling.load in die aktivierten Module Verzeichnis ${APACHE}/mods-enabled:

    # cd ../mods-enabled 
    # ln -s ../mods-available/speling.conf speling.conf 
    # ln -s ../mods-available/speling.load speling.load 
    
  3. Starten Sie den Server.

    # service restart apache2 
    
8

TLDR: CheckCaseOnly gebrochen ist aufgrund eines Fehlers, der für nicht fixierte mehr als sechs Jahren ab 10/2014 geblieben ist.

Ich weiß, das ist eine alte Frage, aber ich lief gerade in das gleiche Problem. Dieses Update soll anderen mit dem gleichen Problem helfen.

Die aktuellen Antworten auf diese Frage sind falsch, da das OP mod_speling korrekt verwendet, aber es gibt einen Fehler.

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

Das zugrunde liegende Problem ist, dass die Apache-Leute nicht einverstanden sind über dieses Verhalten Festsetzung weil sie den Rest des Moduls ändert. Dies ist seit ungefähr 6 Jahren nicht fixiert.