Page 1 of 1

CheckSpelling funktioniert nicht ganz

Posted: 2008-04-15 16:57
by bernau
In meiner httpd.conf habe ich folgendes angegeben.

Code: Select all

CheckSpelling on
Damit sollte doch für alle Domains/VirtuellenDomains die Gross/Kleinschreib-Korrektur durchgeführt werden

Die konfiguration von einem virtuellen host sihet so aus:

Code: Select all

<VirtualHost *:80>
ServerName domain.eu
ServerAlias www.domain.eu
DocumentRoot "//srv/vhosts/domain.eu/htdocs"
<Directory "//srv/vhosts/domain.eu/htdocs">
allow from all
Options None
</Directory>
DirectoryIndex index.htm index.html index.php
</VirtualHost>

Nun ist es so, daß folgendes wie gewünscht korrigiert wird:

www.domain.eu/Index.htm wird umgewandelt nach www.domain.eu/index.htm und die Seite wird auch angezeigt.
(Das original ist kleingeschreiben)

Soweit sogut. Wenn die Datei Index aber in einem Unterverzeichnis vorhanden ist, dann funktioniert's nicht:

www.domain.eu/test/Index.htm wird nicht umgewandelt nach www.domain.eu/test/index.htm und die Seite bring ein Fehler "Objekt nicht gefunden!"

Auf einem anderen Server funktioniert's einwandfrei. Was habe ich vergessen?

Re: CheckSpelling funktioniert nicht ganz

Posted: 2008-04-15 17:10
by Joe User

Re: CheckSpelling funktioniert nicht ganz

Posted: 2008-04-15 17:32
by bernau

Ja. Sonst würde beim Starten von apache2 eine Fehlermeldung zum "Unbekannten CheckSpelling" erscheinen.

Re: CheckSpelling funktioniert nicht ganz

Posted: 2008-04-15 17:41
by Roger Wilco
Steht deine CheckSpelling-Direktive in einem Directory-, Files-, FilesMatch- oder Location-Block?

Re: CheckSpelling funktioniert nicht ganz

Posted: 2008-04-15 22:43
by bernau
Roger Wilco wrote:Steht deine CheckSpelling-Direktive in einem Directory-, Files-, FilesMatch- oder Location-Block?
Nein. Die steht in einer selbst definierten Konfigurationsdatei:


In der Datei /etc/sysconfig/apache2 habe ich folgenden EIntrag zugefügt.

Code: Select all

APACHE_CONF_INCLUDE_FILES="/etc/apache2/mylocalhttpd.conf"
Die Datei habe ich angelegt und dort die Zeile

Code: Select all

CheckSpelling on
eingefügt. Dort ist kein umschliessender Block angegeben.

Re: CheckSpelling funktioniert nicht ganz

Posted: 2008-04-15 23:16
by bernau
Ich muss mich hier korrigieren

www.domain.eu/test/Index.htm wird umgewandelt nach www.domain.eu/test/index.htm (Seite wird angezeigt)

www.domain.eu/Test/Index.htm wird nichtumgewandelt nach www.domain.eu/test/index.htm (Seite bringt einen Fehler)

Also die Datei Index.htm wird korrigiert. Aber das Verzeichnis Test, wird nicht korrigiert. Und dort kommt die Fehlermeldung "Objekt nicht gefunden"

Re: CheckSpelling funktioniert nicht ganz

Posted: 2008-04-16 16:29
by Roger Wilco
http://httpd.apache.org/docs/2.2/mod/mod_speling.html wrote:It [mod_speling] does its work by comparing each document name in the requested directory against the requested document name without regard to case, and allowing up to one misspelling (character insertion / omission / transposition or wrong character).
Ich interpretiere das so, dass nur Dateien innerhalb eines Verzeichnisses geprüft werden. http://www.example.com/Test/index.htm würde also vermutlich funktionieren, http://www.example.com/Test/Index.htm hingegen nicht, weil das Verzeichnis "Test" und die darin liegende Datei "Index.htm" nicht existiert.

Re: CheckSpelling funktioniert nicht ganz

Posted: 2008-04-16 17:24
by bernau
Roger Wilco wrote:
http://httpd.apache.org/docs/2.2/mod/mod_speling.html wrote:It [mod_speling] does its work by comparing each document name in the requested directory against the requested document name without regard to case, and allowing up to one misspelling (character insertion / omission / transposition or wrong character).
Ich interpretiere das so, dass nur Dateien innerhalb eines Verzeichnisses geprüft werden. http://www.example.com/Test/index.htm würde also vermutlich funktionieren, http://www.example.com/Test/Index.htm hingegen nicht, weil das Verzeichnis "Test" und die darin liegende Datei "Index.htm" nicht existiert.
Ne. Das war's leider nicht. Siehe meinen korrigierten Beitrag (vor deinem).

Der Dateiname selber kann auch komplett oder teilweise gross geschrieben werden

"http://www.example.com/test/INDEX.htm" -> OK
"http://www.example.com/test/INDEX.HTM" -> OK
"http://www.example.com/test/Index.htm" -> OK

Aber alles was hinder der Domain und vor der Datei ist (in diesem Falle "test") muss korrekt "case sensitive" geschrieben sein.

"http://www.example.com/Test/index.htm" -> Fehler
"http://www.example.com/TEST/index.htm" -> Fehler

CheckSpelling funktioniert auch insoweit, wenn Endung der Datei fehlerhaft ist. Wenn ich z.B. folgendes eingebe:

"http://www.example.com/test/Index.php"

Dann bekomme ich eine Multiple Choise Angabe mit dem Hinweis, daß nur index.htm zur verfügung steht.

Re: CheckSpelling funktioniert nicht ganz

Posted: 2008-04-16 17:52
by Roger Wilco
Bernau wrote:Ne. Das war's leider nicht. Siehe meinen korrigierten Beitrag (vor deinem).
Ich denke doch. Das passt doch genau auf das von dir beschriebene Verhalten: Dateinamen werden umgewandelt, Verzeichnisse, denen noch ein Dateiname anhängt, nicht.