Sven Rautenberg: Kleines Problem mit RewriteRule

Beitrag lesen

Moin!

Hier ist erst einmal das was ich in der htaccess stehen habe


RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.sonstwo.de/.*$ [NC]
RewriteRule ^(.+)$ http://www.sonstwo.de/verzeichniss_a/verzeichnis_b/index.html [R,L]

Du schreibst _alles_, was die RewriteRule erreicht, genau dann um, wenn der Referrer entweder leer oder "falsch" ist, indem du ein Redirect auf die Index-Seite im Verzeichnis B ausgibst.

Dadurch, dass die .htaccess sich in Verzeichnis B befindet, wird sie nur wirksam für Dateien, die sich in Verzeichnis B befinden.

Aber da das Redirectziel sich auch in Verzeichnis B befindet, fällt "index.html" in diesem Verzeichnis auch unter die Redirect-Rule. Offenbar ist es so, dass ein weitergeleiteter Request immer noch mit dem gleichen Referrer arbeitet, nicht mit dem der zuerst angeforderten Seite - was durchaus sinnvoll ist.

Du hast dir also eine schöne Endlosschleife gebastelt.

Und damit sollte die Abhilfe eigentlich auch klar werden, wobei du natürlich mehrere Möglichkeiten zum Eingriff hast.

- Sven Rautenberg

--
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)