der-ingo
Goto Top

Htaccess-Datei erzeugt Endlosschleife

Hallo zusammen,
ich benötige mal euren Rat bezüglich einer htaccess-Datei. Ich versuche gerade einen Weg zu finden Zugriffe auf Ordner ohne
index.htm / index.html oder index.php zu unterbinden. Meine htaccess Datei soll im Prinzip schauen ob eine dieser drei
Dateien vorhanden ist und wenn nicht, den Besucher zur Startseite umleiten. Das Gleiche soll auch passieren wenn ein
nicht vorhandener Ordner angewählt wird. Im Prinzip geht das auch mit meiner htaccess-Datei nur entsteht dabei
eine Endlosschleife. Kann mir jemand sagen was ich falsch gemacht habe.
Grüße Ingo

Anbei noch der Code meiner .htaccess
DirectoryIndex index.html index.htm index.php
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1/index\.html !-f
RewriteCond %{DOCUMENT_ROOT}/$1/index\.htm !-f
RewriteCond %{DOCUMENT_ROOT}/$1/index\.php !-f

RewriteRule ^(.+?)(?:/[^/]+)?/?$ index.php [L]

Content-ID: 364633

Url: https://administrator.de/contentid/364633

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

BassFishFox
BassFishFox 13.02.2018 um 22:03:54 Uhr
Goto Top
Arano
Arano 14.02.2018 um 09:01:53 Uhr
Goto Top
Hallo,

Darf man fragen warum du das so handhaben möchtest ?
(Ich hasse es wie die Pest wenn ich eine URI aufrufe und stumpf auf der Startseite lande)

Apache - core - Options -Indexes
Apache - mod_autoindex
Apache - core - ErrorDocuments

Darüber hinaus:
Ich versuche gerade einen Weg zu finden Zugriffe auf Ordner ohne index.htm / index.html oder index.php zu unterbinden. Meine htaccess Datei soll im Prinzip schauen ob eine dieser drei Dateien vorhanden ist und wenn nicht, den Besucher zur Startseite umleiten.
Warum auch bei jedem verfluchten Request (seite, css, js, bilder,...) immer wieder prüfen lassen ob die Dateien nun da sind oder nicht - wie oft kann sich das schon ändern !?
Lege doch einfach einmalig überall eine Index-Datei rein und Punkt !
(Das kann man auch Scripten: Durchlaufe rekursiv Verzeichnis und wenn Index fehlt: kopiere eine rein. Mit einer "Special-ID" im Quelltext kann man die dann später auch wieder löschen oder Manipulieren und erhält seine Eigenen)


Apache - mod_rewrite#RewriteCond
Syntax: RewriteCond TestString CondPattern [flags]
TestString is a string which can contain the following expanded constructs in addition to plain text:
Wird aber nicht als RegEx gesehen !?
Dann wäre die Conditions immer wahr weil es "\.html" niemals gibt.


~Arano
Der-Ingo
Der-Ingo 14.02.2018 um 14:16:04 Uhr
Goto Top
Darf man fragen warum du das so handhaben möchtest ?
(Ich hasse es wie die Pest wenn ich eine URI aufrufe und stumpf auf der Startseite lande)

Hallo Arano,
der Grundgedanke war eigentlich, dass wenn sich jemand mal vertippt oder irgendwo eine index-Datei fehlt, dass der
Benutzer nicht in irgendeinem Verzeichnis landet oder eine Fehlermeldung bekommt sonder wieder auf der Startseite
landet damit er ungestört weitermachen kann und ich ihn nicht in alle Verzeichnisse schauen lassen muss.

Machen das nicht nahezu alle größeren Firmen auch so ? Wenn du dich da vertippt hast landest du doch auch nicht in
irgendeinem Verzeichnis, wo du die Dateien, die auf dem Server liegen siehst oder ?
Wenn ich zum Beispiel die Microsoft Suchmaschine bing aufrufe und z.B die Folgende URL anwähle bing.com/87,
dann sehe ich ja auch nicht die standardmäßige Fehlermeldung sondern eine angepasste Fehlerseite durch
die der Nutzer wieder zur Startseite gelangt. Sowohl wenn ich versuche in ein Verzeichnis zu schauen das existiert als auch
wenn ich eine URL aufrufe die es nicht gibt.

So ungewöhnlich ist das doch nicht was ich da vorhabe oder
macht z.B. bing das anders ?

LG Ingo
Arano
Arano 14.02.2018 aktualisiert um 17:36:04 Uhr
Goto Top
Ja, eben genau so !

Wenn ich mich vertippe und auf der Startseite lande...
  • woher weiß ich dann überhaupt das ich mich vertippt habe / einen Fehler gemacht habe !?
  • wenn ich doch ein bestimmtes Ziel hatte, was um Himmels willen soll ich dann "ganz Vorne" auf der Startseite !? Noch dazu i.d.R. ohne einen Hinweis warum/wieso/weswegen ?

Wegen den Verzeichnissen, das ist wie aufgezeigt eine Konfigurationssache: Options -Indexes, so bekomme ich bei mir die Fehlerseite: "403 - Forbidden",
ebenso bei einem Tippfehler: "404 - Not found"
(Ich könnt meine Fehlerseiten auch mal gestalten...)

Diese beiden Seiten (und alle Anderen) lassen sich mit der ErrorDocuments-Direktive beeinflussen
Apache - core#ErrorDocuments
ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/falsche_urls.pl
ErrorDocument 401 /info_zur_anmeldung.html
ErrorDocument 403 "Der Zugriff ist nicht erlaubt."
Sofern aktiviert, kann man das in .htaccess-Dateien auch für einzelne Verzeichnisse anders gestalten.
Und das siehst du ja auch gerade bei deinem Beispiel mit Bing, du landest eben nicht stumpf auf der Startseite, sondern bekommst einen Meldung die dir sagt was los ist und bietet dir Möglichkeiten zum selberentscheiden an. (so wegen "ungestört")

So ungewöhnlich ist das doch nicht was ich da vorhabe oder macht z.B. bing das anders ?
Ähm... Ja, die pfuschen sich das hinterher nicht zurecht, die Planen das von vorneherein ein (Also... hoffe ich zumindest.).


~Arano
Der-Ingo
Der-Ingo 14.02.2018 um 18:35:28 Uhr
Goto Top
Wenn ich mich vertippe und auf der Startseite lande...
woher weiß ich dann überhaupt das ich mich vertippt habe / einen Fehler gemacht habe !?

Hallo Arano,
du hast Recht, dein oben aufgeführtes Argument ergibt durchaus Sinn für mich face-wink
Bisher habe ich auch tatsächlich den Befehl " Options -Indexes" im Einsatz.
Die Möglichkeit eigene Seiten für 500,404,401 & 403 zu erstellen hört sich interessant an,
dass werde ich mir mal anschauen.
Vielen Dank für deine umfangreichen Ausführungen zu diesem Thema

LG Ingo