.htaccess

Alles, was den Apache betrifft, kann hier besprochen werden.

.htaccess

Postby marc_waesche » 22. August 2010 14:12

Hallo zusammen!

Ich möchte, dass alle aufgerufenen Dateien meiner Domain, die NICHT existieren den User per rewrite auf name_handler.php leiten, also z.B. http://www.domain.de/gibt_es_nicht.php. Mit untem stehenden Code klappt das auch. Nur dummerweise wird der Aufruf der Domain ohne explizit angegebenes /index.php ebenfalls als vermeintlich nicht existente Datei interpretiert und per rewrite gehandelt. Wie kann ich den default Domain-Aufruf in diesem Code als Ausnahme spezifizieren?

rewriteEngine on
rewriteBase /
rewriteCond %{REQUEST_FILENAME} !-f
rewriteRule ^.* name_handler.php [L]

Viele Grüße
Marc
marc_waesche
 
Posts: 5
Joined: 22. August 2010 14:04

Re: .htaccess

Postby Nobbie » 22. August 2010 14:31

marc_waesche wrote:Wie kann ich den default Domain-Aufruf in diesem Code als Ausnahme spezifizieren?


Indem Du den Fall berücksichtigst, dass REQUEST_FILENAME leer ist.

Alles in allem aber eine häßliche Lösung, denn eigentlich schaut ja auch Apache schon nach, ob die gewünschte Datei auch existiert und wenn nicht, gibt es einen Error 404. Und wenn man nicht die Standardfehlermeldung anzeigen will in diesem Fall, kann man Apache über die Direktive "ErrorDocument" mitteilen, welchen Text (welche Datei) er stattdessen anzeigen soll. In Deinem konkreten Fall sähe das so aus:

Code: Select all
ErrorDocument 404 /name_handler.php


Das hat darüberhinaus den Vorteil, dass das für alle Ordner (egal ob DocumentRoot oder Alias) von Apache richtig gecheckt wird, während der handcodierte Rewrite ja nur für Datein direkt unterhalb von DocumentRoot das Dateisystem durchsucht, was ggf. zu einer ungewollten Fehlermeldung führt, weil die eingegebene URL auf ein Dokument an einer völlig anderen Stelle verweist (Alias Direktive), welches dort vorhanden ist.

Die Dokumentation und weiterführende Beispiele gibt es hier: http://httpd.apache.org/docs/2.2/mod/co ... ordocument
Nobbie
 
Posts: 8779
Joined: 09. March 2008 13:04

Re: .htaccess

Postby marc_waesche » 22. August 2010 14:49

Danke Dir erstmal Nobbie, allerdings hat Deine Lösung - zumindest auf meiner Kiste - den Nachteil, dass dann auch die neue Adresse im Browser sichtbar ist. Das soll aber eben nicht sein.
Kannst Du mir denn sagen wie mein Code aussehen muß, damit der Fall berücksichtigt wird, wenn REQUEST_FILENAME leer ist? Ich habe schon etliches versucht, auch unter Zuhilfenahme der Dokumentation, aber es klappt einfach nicht.

Gruß Marc
marc_waesche
 
Posts: 5
Joined: 22. August 2010 14:04

Re: .htaccess

Postby Nobbie » 22. August 2010 18:32

marc_waesche wrote:Ich habe schon etliches versucht, auch unter Zuhilfenahme der Dokumentation, aber es klappt einfach nicht.


Am besten zeigst Du uns die ganzen Versuche, vielleicht siehst Du den Fehler dann sogar selbst, sonst schauen wir halt mal drauf. So lernt man es auch viel besser. Was hast Du denn alles probiert?
Nobbie
 
Posts: 8779
Joined: 09. March 2008 13:04

Re: .htaccess

Postby marc_waesche » 22. August 2010 18:44

Das kriege ich leider nicht mehr hintereinander. Ich hatte es mit untereinander geschriebenen Konditionen versucht, quasi als eine Art Weiche. Ich habe allerdings auch 0 Ahnung von der Materie muß ich zugeben. Und durch die Logik des Aufbaus des Codes in der .htaccess blicke ich auch nicht so ganz durch. Meine Versuche führten immer dazu, dass entweder eine Weiterleitung mit unerwünschter Änderung der Adresszeile folgte, oder das gar keine Seite erreichbar war. Ich mußte halt nur wissen, wie ich diese Ausnahme mit der default-Seite (index.php) programmsprachlich korrekt einbaue. Ansonsten funktioniert der gepostete Code ja.

Gruß Marc
marc_waesche
 
Posts: 5
Joined: 22. August 2010 14:04

Re: .htaccess

Postby Nobbie » 22. August 2010 18:57

marc_waesche wrote:Das kriege ich leider nicht mehr hintereinander. Ich hatte es mit untereinander geschriebenen Konditionen versucht, quasi als eine Art Weiche.


Dann zeige das doch einfach, wenn es falsch ist, macht das doch nichts.
Nobbie
 
Posts: 8779
Joined: 09. March 2008 13:04

Re: .htaccess

Postby marc_waesche » 22. August 2010 19:14

Ich weiß es nicht mehr bzw. es war auch totaler Unsinn. Ich wollte schauen, ob ich der Serverreaktion vielleicht bei variierenden Einträgen irgendeinen Hinweis abverlangen kann. Um ehrlich zu sein werde ich mit .htaccess vermutlich auch nie mehr etwas zu tun haben. Daher wäre ich einfach dankbar, wenn Du oder ein anderer mir einfach die Lösung verraten würde.

Gruß Marc
marc_waesche
 
Posts: 5
Joined: 22. August 2010 14:04

Problem gelöst

Postby marc_waesche » 24. August 2010 20:21

RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} !^[A-Z]+\ /\ HTTP/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* handler.php

Thanks,
Marc
marc_waesche
 
Posts: 5
Joined: 22. August 2010 14:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests