Seite 1 von 1

Htaccess: MovedPermanently. Knifflige Frage.

Verfasst: 24.10.2007, 14:36
von flo21
Hallo,
ich habe ein DC Problem. Folgendes Beispiel tritt auf:

a) https://www.meineseite.de/toll/er/inhalt.htm (diese Seite soll drin bleiben)
b) https://www.meineseite.de/index.php?inhalt=toller (diese soll weg)

a und b sind identisch.

Nun habe ich diesen Befehl eingebaut:
RewriteCond %{THE_REQUEST} index.php(\?inhalt=toller)
RewriteRule ^(.*)$ - [G]
Damit kommt ein 410 wenn man b aufruft. Die Ausgabe lautet:
Gone
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.
Nun meine Frage: kickt Google dann meine index.php, oder nur die index.php?inhalt=toller

Die index.php soll er ja nicht rausnehmen!

Danke + Grüße
FLO

Verfasst:
von

Verfasst: 24.10.2007, 16:17
von matin
versuch

Code: Alles auswählen

RewriteEngine On
RewriteCond %{QUERY_STRING} ^inhalt=([A-Za-z]+)$
RewriteRule ^(.*) http://www.domain.de/%1/inhalt.htm? [L,R=301]
RewriteRule ^([A-Za-z]+)/inhalt.htm$ /index.php?inhalt=$1&umgeleitet=ja
wobei das problem der teilung der variable ist: toll/er ist nicht wirklich als variable handlebar (hoffe, es war ein tippfehler)

Verfasst: 24.10.2007, 17:25
von flo21
Danke für die Antwort. Aber eine 301 Weiterleitung kommt nicht in Frage... manchmal sind die URLs völlig falsch im Index. Also man kann aus der falschen URL nicht immer auf die richtige schließen.

Ich brauche also die 410 Meldung, muss aber gewährleisten dass die index.php nicht als 410 gewertet wird, sondern nur die index.php?mit=variablen.

Verfasst: 25.10.2007, 07:04
von matin
hm ... könnte so, funktionieren, in dem du die index.php vor der anderen rule per 301 auf das rootverzeichnis leitest:

Code: Alles auswählen

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L,NC]
wie gesagt, diese rule müsste in der .htaccess vor der anderen kommen