Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

index.php umleiten auf / inkl. Unterordner

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 14.08.2011, 11:05

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 ?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 14.08.2011, 11:22

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]

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 14.08.2011, 11:43

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.

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 14.08.2011, 11:57

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.

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 14.08.2011, 13:26

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 ?

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 14.08.2011, 13:38

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.

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 14.08.2011, 15:12

Ok, wollte nur sicher gehen, das die Seitenaufrufe deswegen nicht länger dauern ;)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag