Zur Navigation

Umleitung, wenn keine Entsprechung

1 Jürgen.bcx

Hallo,
ich habe in einem Ordner drei Rss-Feeds und möchte, dass wenn keiner von diesen Dreien aufgerufen wird, auf eine andere Seite umgeleitet wird. Ich habe das bis jetzt so (erfolglos) probiert:

RewriteEngine on
RewriteRule ^rss.rss$ rss.php [NC,L]
RewriteRule ^shoutbox.rss(.*)$ shoutbox.php$1 [NC,L,noescape]
RewriteRule ^shoutbox_xbox.rss$ shoutbox_xbox.php [NC,L]

RewriteCond %{REQUEST_URI} !^/rss\.rss [OR]
RewriteCond %{REQUEST_URI} !^/shoutbox\.rss [OR]
RewriteCond %{REQUEST_URI} !^/shoutbox_xbox\.rss
RewriteRule ^.*$ http://domain.tld/content/extra/#rss [R=301,L,NC,noescape]

Nur leider wird die letzte RewriteRule immer durchlaufen, selbst wenn ich die Feeds manuell aufrufe, ich komme also immer auf die extra-Seite mit dem #rss-Anker. Woran könnte das liegen?

23.07.2009 18:42

2 Jörg

Du verknüpfst die negativen Bedingungen mit OR - alle URIs erfüllen mindestens eine der Bedingungen und deswegen werden auch alle weitergeleitet. Versuche es mal ohne die [OR] Flags

23.07.2009 18:53

3 Jürgen.bcx

Hallo Jörg,
danke für deine Antwort, ich habe die [OR]-Verknüpfungen entfernt, jedoch ist das Ergebnis das gleiche (Habe den Browsercache und die gesicherten Verbindungen geflushed).

Die htaccess mit diesem Inhalt liegt übrigens in dem Ordner mit den 3 Feeds, also unter domain.tld/content/feeds/, die Seite auf die weitergeleitet werden soll ist aber unter domain.tld/content/extra/, stellt das ein Problem dar?
Ausserdem habe ich im Root eine weitere htaccess mit den Grundeinstellungen.

23.07.2009 19:01

4 Jörg

In der .htaccess ist "%{REQUEST_URI}" nicht immer zuverlässig zu gebrauchen - im Zweifelsfall kann man auf "%{THE_REQUEST}" ausweichen (die "^" müssen dabei entfernt werden)

RewriteCond %{THE_REQUEST} !/rss\.rss
RewriteCond %{THE_REQUEST} !/shoutbox\.rss
RewriteCond %{THE_REQUEST} !/shoutbox_xbox\.rss
RewriteRule ^.*$ http://domain.tld/content/extra/#rss [R=301,L,NC,noescape]

23.07.2009 19:16

5 Jürgen.bcx

Warum ist das nicht zuverlässig zu gebrauchen? Was macht THE_REQUEST besser und warum fallen die "^" weg?

Jedenfalls macht die von Dir vorgeschlagene Lösung genau das, was ich will! Habe vielen Dank dafür!
Jörg, du hast mir hier schon mehrmals erfolgreich helfen können, ich biete Dir einen Backlink auf unserer Seite an, wenn du möchtest.
Viele Grüße ;)

24.07.2009 00:16

6 Jörg

Warum ist das nicht zuverlässig zu gebrauchen?

Der Inhalt von REQUEST_URI kann sich ändern. Wenn ich mich recht entsinne, hat das damit zu tun, dass beim Einlesen der .htaccess ein Rewrite eigentlich nicht mehr möglich ist, das Modul diese Variable aber dazu nutzt, dies dennoch tun zu können. Ich finde den betreffenden Artikel, der dieses erklärt, aber leider nicht mehr.

Was macht THE_REQUEST besser und warum fallen die "^" weg?

THE_REQUEST ändert sich nicht. "^" zeigt den Anfang eines Ausdruckes an - der liegt bei THE_REQUEST aber weiter vorne und beginnt mit der Methode, z.B. "GET /index.php HTTP/1.1"

Jörg, du hast mir hier schon mehrmals erfolgreich helfen können, ich biete Dir einen Backlink auf unserer Seite an, wenn du möchtest.

Da habe ich nichts dagegen - im Gegenteil :)

24.07.2009 01:01 | geändert: 24.07.2009 01:02

Beitrag schreiben (als Gast)





[BBCode-Hilfe]