• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

probleme mit mod rewrite

Status
Für weitere Antworten geschlossen.
G

general_xxx

Guest
Hallo,

ich habe ein phpbb Forum, bei dem per Modrewrite variable urls in statische umgewanelt werden.

Leider sind einige Seiten mit diesem Schema jetzt schon im google index:

http://www.testdomain.net/testtopic-t66.html?sid=aa96d7c572030473fb3389eb9ceb6d44

obwohl sie eigentlich in der Form

http://www.testdomain.net/testtopic-t66.html

bei google indexiert werden sollen.

Jetzt ist das system zwar soweit eingestellt, dass an gäste, also auch an bots keine sids mehr vergeben werden, jedoch bleiben die Links mit dem sid anhängsel bei google im Index, da diese ja trozdem noch erreichbar sind.

Mein Frage nun:

Wie kann ich es machen(per mod-rewrite), dass die Url http://www.testdomain.net/testtopic-t66.html?sid=aa96d7c572030473fb3389eb9ceb6d44

auf eine 404.html verweist?

Dabei soll die Url http://www.testdomain.net/testtopic-t66.html (also die ohne sid) trozdem weiter funktionieren.

Ich habe es schon länger probiert und auch die Suche benutzt, nur leider bekomme ich das nicht hinb :(

könnt ihr mir helfen?
 
Werbung:
Wenn mich jetzt nich alles täuscht müsste doch das gehen:

PHP:
RewriteRule ^(.*)sid(.*)$ 404.php

Eigentlich müsste es auch ohne gehen, bin mir aber gerade nicht sicher, also so:

PHP:
RewriteRule sid 404.php

RJ
 
Hallo,

404-Weiterleitung ist eher suboptimal, da damit ja auch der Inhalt aus dem Google-Index verschwindet. Mach lieber eine permanente Weiterleitung.

Ich mache das bei mir wie folgt:
Code:
RewriteCond %{QUERY_STRING} ^PHPSESSID
RewriteRule ^(.*)$ $1? [L,R=301] 

RewriteCond %{QUERY_STRING} ^(.*)&PHPSESSID
RewriteRule ^(.*)$ $1?%1 [L,R=301]

PHPSESSID durch sid ersetzen. Der Code nutzt aus, dass PHPSESSID immer ans Ende vom Query String gesetzt wird.

Der Code von Web_spider würde nicht funktionieren, da die RewriteRule nur auf den Pfad/Dateinamen angewendet wird und nicht auf den Query-String.


N43
 
Werbung:
@Web_spider: Hat leider nicht funktioniert, aber danke trozdem für die Antwort!


@N43: Danke! Das hat mir echt weiter geholfen, vor allem das mit dem Tipp, dass man die lieber nicht auf ne 404 Seite weiterleiten lassen sollte, weil die sonst aus dem Index fliegen war gut. Ich hatte daran gedacht sie erst aus dem Index zu entfernen und sie dann neu spidern zu lassen... wobei deine Alternative natürlich viel besser ist ;)

Allerdings ist mein Problem, dass ich die sid in bestimmten berreichen auch brauche ich die sid auch (zb zum ausloggen...)

wie kann ich das denn machen, dass nur an Seiten mit der Endung .html die sid entfernt wird?

Außerdem hab ich auch noch sowas: http://domain.de/sid=zh87fw3tgtwfw7 ... wie kann ich das denn zu Domain.de - Das Portal rund um Domains konvertieren?

lg

marek
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

das müsste mit
Code:
RewriteRule ^(.*)\.html$ $1.html? [L,R=301]
RewriteRule ^(.*)\.html$ $1.html?%1 [L,R=301]
gehen und für einen quasi leeren Dateinamen mit
Code:
RewriteRule ^$ / [L,R=301]
RewriteRule ^$ /%1 [L,R=301]
jeweils unter die andere RewriteRule.


N43
 
hmm... irgendwie kommt da denn eine umleitungsschleife...

Wie meinst du das denn mit "jeweils unter die andere RewriteRule."?

LG

Marek
 
Werbung:
Abend,

Code:
RewriteCond %{QUERY_STRING} ^PHPSESSID
RewriteRule ^(.*)\.html$ $1.html? [L,R=301]
RewriteRule ^$ / [L,R=301]

RewriteCond %{QUERY_STRING} ^(.*)&PHPSESSID
RewriteRule ^(.*)\.html$ $1.html?%1 [L,R=301]
RewriteRule ^$ /%1 [L,R=301]

Ich bin mir jetzt aber nicht 100% sicher, ob man unter eine RewriteCond mehrere Regeln setzen kann.


N43
 
Ui, böser Fehler von mir, tut mir leid. Ich hätte wohl noch eben nachgucken müssen. Naja kommt davon, wenn man i-wann seine .htaccess zusammengestellt hat und sie immer für Projekte bentuzt.
Ich bitte um entschuldigung.

Grüße

RJ
 
Hey, erstmal danke, dass du dir so viel Mühe gibst, aber leider kommt immer noch eine Umleitungsschleife ^^

Irgendwie ist das kompliziert ^^

Haste noch ne Idee?
 
Werbung:
Hallo,

evtl. liegt es daran, dass unter jeder RewriteCond zwei Regeln stehen. Entfern mal Test-halber die, die ^$ umleiten.


N43
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben