Zur Navigation

Bestimmte Urls auf Fehlerseite leiten [2]

11 Horst_Braun

Hab jetzt folgende htaccess:
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^adventures-kompakt.de$ [NC]
RewriteRule ^(.*)$ http://www.adventures-kompakt.de/$1 [L,R=301]

RewriteCond %{HTTP_HOST} adventures-kompakt\.de$
RewriteRule ^$ index.php?menuid=1&getlang=de

RewriteCond %{HTTP_HOST} ^adventure-compact.com$ [NC]
RewriteRule ^(.*)$ http://www.adventure-compact.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} adventure-compact\.com$
RewriteRule ^$ index.php?menuid=1&getlang=en [L]

RewriteCond %{HTTP_HOST} adventure-compact\.com
RewriteCond %{THE_REQUEST} !/en/
RewriteRule .+ - [G,L]

RewriteRule ^bilder/(.*)$ - [L,NE]
RewriteRule ^css/(.*)$ - [L,NE]
RewriteRule ^dokumentation/(.*)$ - [L,NE]
RewriteRule ^dokumente/(.*)$ - [L,NE]
RewriteRule ^editorbild/(.*)$ - [L,NE]
RewriteRule ^images/(.*)$ - [L,NE]
RewriteRule ^interna/(.*)$ - [L,NE]
RewriteRule ^js/(.*)$ - [L,NE]
RewriteRule ^lib/(.*)$ - [L,NE]
RewriteRule ^plugins/(.*)$ - [L,NE]
RewriteRule ^setup/(.*)$ - [L,NE]
RewriteRule ^templates/(.*)$ - [L,NE]
RewriteRule ^templates_c/(.*)$ - [L,NE]
RewriteRule ^video/(.*)$ - [L,NE]
RewriteRule ^zusatz/(.*)$ - [L,NE]
RewriteRule ^zusatz/banner/(.*)$ - [L,NE]
RewriteRule ^zusatz/bewertung/(.*)$ - [L,NE]
RewriteRule ^zusatz/spielhilfen/(.*)$ - [L,NE]

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6&var7=$7&var8=$8&var9=$9 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6&var7=$7&var8=$8 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6&var7=$7 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2 [L]
RewriteRule ^([^/]*).html$ index.php?var1=$1 [L]

Folgender Fehler: "The requested resource /index.php is no longer available on this server and there is no forwarding address. Please remove all references to this resource."

08.09.2008 23:19

12 Jörg

Ich habe das grad mal getestet - aus einem mir unbekannten Grund wird das "+" nicht erwarungsgemäß interpretiert - nämlich als Quantor für mindstens ein Zeichen. Der Punkt alleine mit den BEgrenzungszeichen scheint aber die gewünschte Wirkung zu haben - probier das mal:

RewriteCond %{HTTP_HOST} adventure-compact\.com
RewriteCond %{THE_REQUEST} !/en/
RewriteRule ^.$ - [G,L]

08.09.2008 23:44 | geändert: 08.09.2008 23:45

13 Horst_Braun

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^adventures-kompakt.de$ [NC]
RewriteRule ^(.*)$ http://www.adventures-kompakt.de/$1 [L,R=301]

RewriteCond %{HTTP_HOST} adventures-kompakt\.de$
RewriteRule ^$ index.php?menuid=1&getlang=de

RewriteCond %{HTTP_HOST} ^adventure-compact.com$ [NC]
RewriteRule ^(.*)$ http://www.adventure-compact.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} adventure-compact\.com$
RewriteRule ^$ index.php?menuid=1&getlang=en

RewriteCond %{HTTP_HOST} adventure-compact\.com
RewriteCond %{THE_REQUEST} !/en/
RewriteRule ^.$ - [G,L]

RewriteRule ^bilder/(.*)$ - [L,NE]
RewriteRule ^css/(.*)$ - [L,NE]
RewriteRule ^dokumentation/(.*)$ - [L,NE]
RewriteRule ^dokumente/(.*)$ - [L,NE]
RewriteRule ^editorbild/(.*)$ - [L,NE]
RewriteRule ^images/(.*)$ - [L,NE]
RewriteRule ^interna/(.*)$ - [L,NE]
RewriteRule ^js/(.*)$ - [L,NE]
RewriteRule ^lib/(.*)$ - [L,NE]
RewriteRule ^plugins/(.*)$ - [L,NE]
RewriteRule ^setup/(.*)$ - [L,NE]
RewriteRule ^templates/(.*)$ - [L,NE]
RewriteRule ^templates_c/(.*)$ - [L,NE]
RewriteRule ^video/(.*)$ - [L,NE]
RewriteRule ^zusatz/(.*)$ - [L,NE]
RewriteRule ^zusatz/banner/(.*)$ - [L,NE]
RewriteRule ^zusatz/bewertung/(.*)$ - [L,NE]
RewriteRule ^zusatz/spielhilfen/(.*)$ - [L,NE]

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6&var7=$7&var8=$8&var9=$9 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6&var7=$7&var8=$8 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6&var7=$7 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5&var6=$6 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^([^/]*)/([^/]*)$ index.php?var1=$1&var2=$2 [L]
RewriteRule ^([^/]*).html$ index.php?var1=$1 [L]

Kannst selbst schauen. Jetzt gehen alle Seiten. Sowahl mit /en/ also auch andere.

Die Lösung im Punkt 2 war fast perfekt bis auf die Startseite.

MfG

PS: Ich muss dringend ins Bett gehen. Bis morgen. Danke nochmal

08.09.2008 23:57

14 Jörg

Das mit "." war auch Blödsinn - der steht für exakt ein Zeichen. Das "+" wäre eigentlich goldrichtig - aber hier funktioniert es wie das "*" für kein oder ein oder mehrere Zeichen.

Nochmals etwas getestet: im Zusammenhang mit dem "G" Flag scheint das "+" ganz allgemein nicht zu funktionieren - vielleicht ein Bug :/. Damit fehlt leider eine einfache Möglichkeit, die Startseite von der Regel auszuschließen

09.09.2008 00:19 | geändert: 09.09.2008 00:21

15 Horst_Braun

Zitat von Jörg
Das mit "." war auch Blödsinn - der steht für exakt ein Zeichen. Das "+" wäre eigentlich goldrichtig - aber hier funktioniert es wie das "*" für kein oder ein oder mehrere Zeichen.

Nochmals etwas getestet: im Zusammenhang mit dem "G" Flag scheint das "+" ganz allgemein nicht zu funktionieren - vielleicht ein Bug :/. Damit fehlt leider eine einfache Möglichkeit, die Startseite von der Regel auszuschließen

Guten Morgen!
Geht das Ausschließen der Startseite nicht so wie ich auch die Verzeichnisse ausgeschlossen habe?

MfG

09.09.2008 09:01

16 Jörg

Geht das Ausschließen der Startseite nicht so wie ich auch die Verzeichnisse ausgeschlossen habe?

Worauf genau beziehst du das? Die anderen URLs wurden ausgeschlossen, weil sie kein "/en/" enthalten. Diese Methode ist so nicht auf die Startseite übertragbar. Es gibt keine Seiten deren Request URI kein "/" enthält - somit würde man alle Seiten ausschließen, auch die, die ein "/en/" enthalten. Der normale Weg wäre es hier, mindestens ein Zeichen nach dem "/" zu rewriten - aber das dafür zuständige "+" versagt hier leider seinen Dienst

Ich habe jetzt mal diese Kombination mit einer zusätzlichen RewriteCond getestet - das scheint wohl zu funktionieren (?):

RewriteCond %{HTTP_HOST} adventure-compact\.com$
RewriteRule ^$ index.php?menuid=1&getlang=en [L]

RewriteCond %{HTTP_HOST} adventure-compact\.com
RewriteCond %{THE_REQUEST} !/en/
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule .* - [G,L]

Wichtig ist die Reihenfolge und das L-Flag der ersten Rule.

09.09.2008 09:43

17 Horst_Braun

Wow. Das klappt! Siehe:

http://www.adventure-compact.com - geht
http://www.adventure-compact.com/en/web-newsarchives/black-mirror-2-news-press.html - geht
http://www.adventure-compact.com/web-newsarchives/black-mirror-2-news-press.html - geht nicht

Perfekt

Ich musste aber
RewriteCond %{HTTP_HOST} adventure-compact\.com
RewriteCond %{THE_REQUEST} !/en/
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule .* - [G,L]
unter meine
RewriteRule ^zusatz/spielhilfen/(.*)$ - [L,NE]
setzen.

Danke. Hoffe, dass ich nichts übersehen habe. :-)

09.09.2008 10:05

18 Horst_Braun

Ich wusste es, dass ich was vergessen habe. Und zwar. Es sind alle URLs mit /en/. Aber die Forenbeiträge nicht, d.h.

http://www.adventure-compact.com/forumid-21.....html

Kann ich da noch eine Ausnahmeregel mit einfügen, welche sagt, dass alle Url mit "adventure-compact.com/forumid... usw." Nicht in die /en/ Regel fallen?

Danke

MfG

PS: Ich hoffe, dass ich nicht nerve!

09.09.2008 10:13

19 Jörg

Das sollte eine weitere RewriteCond nach dem Muster für den Ausschluss von '/en/' in der URL bewerkstelligen können:

RewriteCond %{HTTP_HOST} adventure-compact\.com
RewriteCond %{THE_REQUEST} !/en/
RewriteCond %{THE_REQUEST} !/forumid
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule .* - [G,L]

09.09.2008 10:20

20 Horst_Braun

Jawohl. Das macht es auch!!

Danke. Danke. Danke!!!

09.09.2008 10:27