Hallo Marco
Dann versuchen wir das nochmal mit der allgemeinen Syntax.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\\. [NC]
RewriteRule ^(.*)$ www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
Wenn das dann geht wäre der nächste Schritt die index.php umzuleiten.
Das wäre in deinem Fall etwas schwieriger.
RewriteCond %{QUERY_STRING} ^$ [OR]
RewriteCond %{QUERY_STRING} ^osCsid=74f9000eca639a2797bcdd05c71de3a9$
RewriteRule ^index\\.php / [L,R=301]
Mit der ersten Bedingung wird dann die index.php ohne Query auf das Startverzeichnis umgeleitet.
Da aber auch noch eine Startseite mit einem Query existieren kann und wir andere Unterseiten die weitere Parameter enthalten nicht umleiten möchten müssen wir auch dafür sorgen das nur in diesem Fall eine Umleitung vorgenommen wird.
Mit PHP wäre das jetzt etwas einfacher und vor allen Dingen leichter zu korrigieren das dieser Parameter der wahrscheinlich an alle deine Unterseiten angehängt wird verschwindet.
Momentan fällt mir dazu keine Lösung per htaccess ein.
Dann wäre der vollständiger Rewrite momentan
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\\. [NC]
RewriteRule ^(.*)$ www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{QUERY_STRING} ^$ [OR]
RewriteCond %{QUERY_STRING} ^osCsid=74f9000eca639a2797bcdd05c71de3a9$
RewriteRule ^index\\.php / [L,R=301]
</IfModule>
Dann nehmen wir uns zumindest noch die Urls vor die nur diesen einen Parameter enthalten aber nicht die Index.php sind.
RewriteCond %{REQUEST_URI} !index\\.php
RewriteCond %{QUERY_STRING} ^osCsid=74f9000eca639a2797bcdd05c71de3a9$
RewriteRule (.*) %{REQUEST_URI}? [R=301,L]
Würde dann zusammen diesen Block ergeben.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\\. [NC]
RewriteRule ^(.*)$ www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{QUERY_STRING} ^$ [OR]
RewriteCond %{QUERY_STRING} ^osCsid=74f9000eca639a2797bcdd05c71de3a9$
RewriteRule ^index\\.php / [L,R=301]
RewriteCond %{REQUEST_URI} !index\\.php
RewriteCond %{QUERY_STRING} ^osCsid=74f9000eca639a2797bcdd05c71de3a9$
RewriteRule (.*) %{REQUEST_URI}? [R=301,L]
</IfModule>
Und jetzt bitte einen Schritt nach dem nächsten testen.
Wenn es dann irgendwo haken sollte kann man versuchen diesen Schritt anzupassen.
Und die Fehlersuche wäre dann dadurch auch einfacher.
So dann könnte man testen ob
RewriteCond %{REQUEST_URI} !index\\.php
RewriteCond %{QUERY_STRING} ^(.+)osCsid=74f9000eca639a2797bcdd05c71de3a9$
RewriteRule (.*) %{REQUEST_URI}?%1 [R=301,L]
oder so ähnlich vermutlich dazu führt die restlichen Urls auch von diesem Query zu befreien.
Da ich das jetzt noch nie getestet habe weiss ich es einfach nicht ob das zu dem gewünschten Ergebnis führt. Hiesse das dann auch noch ans Ende hängen.
Nicht wundern wenn ein Fragezeichen alleine noch stehen bleibt, wenn der Query entfernt wird.
htaccess ist an dieser Stelle nicht so mächtig wie PHP es ist.
Mit PHP würde ich die Request URI mir schnappen und einfach danach durchsuchen ob dieser Parameter gesetzt ist. Wenn ja würde ich den Parameter daraus entfernen und eine Umleitung vornehmen.
Gruß
Jörg
Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools
Beitrag erstellen
EinloggenKostenlos registrieren