|
|
Ice Man

: 04.06.2003 : 2343
|
| : 14.08.2011, 12:05 : index.php umleiten auf / inkl. Unterordner |
|
|
Hi, seit ein paar Wochen hab ich ein komisches Problem.
In meinem 404 Log erscheinen Seiten die es nicht gibt, die auch nirgendes verlinkt sind.
Bsp:
Per Modrewrite hab ich schöne "sprechende URLS"
domain.de/marke/vw/
domain.de/marke/fiat/
domain.de/typ/kombi/
domain.de/typ/sportwagen/
das geht dann nach xyz.php?marke=vw
Das funktioniert alles bestens, aber seit ein paar Wochen wird in den "/" hinten manchmal eine index.php angehängt.
Da dieses in der .htaccess so nicht vorkommt, gibts einen 404er.
Da ich einge Varianten hab, also nicht nur marke, typ sondern noch viele andere brauch ich einen Universelle .htaccess Anweisung, das die .index.php immer aus der Browserzeile entfernt wird und nur zum
unterordner weitergeleitet wird
Bsp:
domain.de/typ/sportwagen/index.php => domain.de/typ/sportwagen/
domain.de/typ/kombi/index.php => domain.de/typ/kombi/
domain.de/typ/irgendwas/index.php => domain.de/typ/irgendwas/
gibts dafür eine universelle Anweisung ? |
|
| Nach oben |
|
 |
Synonym

: 09.08.2008 : 3491 : Würzburg
|
| : 14.08.2011, 12:22 : index.php umleiten auf / inkl. Unterordner |
|
|
| : |
| gibts dafür eine universelle Anweisung ? |
Ja.
Aber erst mal eine Gegenfrage. Gibt es bei Dir irgendwo wirklich eine index.php, also ein File, das tatsächlich vorhanden ist?
Ich denke mal im Root, oder?
Gibt es Unterordner, in denen eine echte index.php liegt?
"marke" und "typ". Was sind das für Zeichen? Buchstaben? Zahlen? Gemicht? Was genau?
Theoretisch möglich wäre so etwas (ungetestet):
RewriteRule ^([^.]+)/index\.php /$1/ [R=301,L] |
|
| Nach oben |
|
 |
Ice Man

: 04.06.2003 : 2343
|
| : 14.08.2011, 12:43 : index.php umleiten auf / inkl. Unterordner |
|
|
jo, im Root gibt es eine index.php
Aber sonnst nirgens
Marke und Typ sind "virtuelle" unterordner, die nur für die Suma existieren, und per Modrewrite in datei.php?typ=unterordner1&marke=unterordner2 umgeschrieben werden.
Edit, funktionierte super, die komischen falschen index.php verschwinden.
Hab aber nicht an den Admin Bereich gedacht, da liegt auch eine index.php die nun nicht mehr lädt. |
|
| Nach oben |
|
 |
Synonym

: 09.08.2008 : 3491 : Würzburg
|
| : 14.08.2011, 12:57 : index.php umleiten auf / inkl. Unterordner |
|
|
Ok, also gibt es doch eine Unterordner, in dem eine index.php liegt - der Adminbereich.
Zwei Ansätze
Entweder die Rule für /admin/ ausklammern oder eben prüfen, ob eine index.php wirklich als Datei vorhanden ist.
#Ausklammern
RewriteCond %{REQUEST_URI} !^/admin/
Also, wenn die URI nicht mit "/admin/" anfängt
# File prüfen
RewriteCond %{REQUEST_FILENAME} !-f
Also, wenn kein echtes File
Die Cond muss jeweils direkt vor die Rule.
Ebenfalls ungetestet. |
|
| Nach oben |
|
 |
Ice Man

: 04.06.2003 : 2343
|
| : 14.08.2011, 14:26 : index.php umleiten auf / inkl. Unterordner |
|
|
Klasse das mit der Prüfung hat funktioniert.
Ich wusste nicht das man sowas in die htaccess schreiben kann.
Belastet diese Prüfung den Server jetzt ?
Oder ist dieese Prüfung unerheblich ? |
|
| Nach oben |
|
 |
Synonym

: 09.08.2008 : 3491 : Würzburg
|
| : 14.08.2011, 14:38 : index.php umleiten auf / inkl. Unterordner |
|
|
| : |
| Belastet diese Prüfung den Server jetzt ? |
Ja
| : |
| Oder ist dieese Prüfung unerheblich ? |
Auch ja
Die Variante mit "REQUEST_FILENAME" "belastet" etwas mehr, da dazu auf dem Dateisystem ein Zugriff erfolgen muss. Ist dafür aber auch für alle Unterverzeichnisse dann gültig, nicht nur für "admin".
Die andere ist "weniger Belastung", da es nur ein Stringvergleich ist, dafür aber auch nur für "admin" und nichts anderes.
Und "belastet" bedeutet hier etwas im Bereich von Millisekunden. |
|
| Nach oben |
|
 |
Ice Man

: 04.06.2003 : 2343
|
| : 14.08.2011, 16:12 : index.php umleiten auf / inkl. Unterordner |
|
|
Ok, wollte nur sicher gehen, das die Seitenaufrufe deswegen nicht länger dauern  |
|
| Nach oben |
|
 |