Hallo,
habe mir ein schöne großes Problem geschaffen. Habe eine etwas größere Webseite (CMS / PHP) mit vielen Unterseiten. Bei der URL-Gestaltung war ich ein wenig unvorsichtig. Leerzeichen in Unterseiten-Namen waren mit "_" (Unterstrich) aufgefüllt. Das wurde so aus den lokalen Ordnern übernommen. Neue Browser können damit umgehen, aber bei copy&paste bereitet das u.U. immer noch Probleme. Die Unterstriche in den URLs werden zu "%20". Als Links werden sie dann zum Teil bei diesen "%20" getrennt und sind nicht mehr anklickbar, oder vieles andere macht die URL kaputt.
Nun ja, ich habe kurzerhand alle Unterstriche in Striche umbenannt. War ein riesen Akt. Dank Suchen/Ersetzen und Batch hielt es sich in Grenzen. Woran ich aber jetzt scheiter ist ein Redirect 301 von den URLs mit den Untersrichen in den Ordnern auf die neuen URLs mit Strichen in den Ordnern.
Ein Redirect 301 funktioniert zurzeit nur eingeschränkt in den "Artikeln". Macht aber ein unschönes "/?" ans Ende der URL. Ohne dem "/?" am Ende funktioniert es nicht.
URL im Browser: http://www.example.com/sommer/2008-nordsee/PICT0123/?
Wenn ich Ordner umleiten will, dann funktionieren nur die Ordner. Alles darunter wird dann in die übergeordneten Ordner geleitet.
URL eines Artikels aufrufen leitet zu Ordner: http://www.example.com/sommer/2008-nordsee/?/PICT0123
Dieses "/?" (Slash Fragezeichen) am Ende bekomme ich nicht weg. Weder in "Artikeln" noch in "Kategorien".
Meine anfängliche Idee war, dass ich nur die kompletten Ordner weiterleiten muss, da in den Artikel-Namen nur sehr vereinzelt Unterstriche vorkamen. Hauptsächlich waren sie in den Kategorie-Namen (Ordner).
Dazu habe ich dieses RewriteRule gefunden, aber es funktioniert nicht. Auch nicht in irgendwelchen Abwandlungen.
Ich habe mich schon öfters mit den Möglichkeiten, insb. Rewrite, in der .htaccess beschäftigt, aber bisher immer vergebens. An dem Problem sitze ich nun auch schon wieder 3 Stunden ohne Ergebnis.
Hat jemand eine Ahnung wie ich das Weiterleiten kompletter Ordner realisieren kann?
Der Rewrite Eintrag in meiner .htaccess.
Die Redirects 301 der Artikel stehen darunter. Wegen denen hat meine .htaccess eine Dateigröße von 1.000 KB.
habe mir ein schöne großes Problem geschaffen. Habe eine etwas größere Webseite (CMS / PHP) mit vielen Unterseiten. Bei der URL-Gestaltung war ich ein wenig unvorsichtig. Leerzeichen in Unterseiten-Namen waren mit "_" (Unterstrich) aufgefüllt. Das wurde so aus den lokalen Ordnern übernommen. Neue Browser können damit umgehen, aber bei copy&paste bereitet das u.U. immer noch Probleme. Die Unterstriche in den URLs werden zu "%20". Als Links werden sie dann zum Teil bei diesen "%20" getrennt und sind nicht mehr anklickbar, oder vieles andere macht die URL kaputt.
Nun ja, ich habe kurzerhand alle Unterstriche in Striche umbenannt. War ein riesen Akt. Dank Suchen/Ersetzen und Batch hielt es sich in Grenzen. Woran ich aber jetzt scheiter ist ein Redirect 301 von den URLs mit den Untersrichen in den Ordnern auf die neuen URLs mit Strichen in den Ordnern.
Ein Redirect 301 funktioniert zurzeit nur eingeschränkt in den "Artikeln". Macht aber ein unschönes "/?" ans Ende der URL. Ohne dem "/?" am Ende funktioniert es nicht.
Code:
Redirect 301 /sommer/2008_nordsee/PICT0123 http://www.example.com/sommer/2008-nordsee/PICT0123/?
Wenn ich Ordner umleiten will, dann funktionieren nur die Ordner. Alles darunter wird dann in die übergeordneten Ordner geleitet.
Code:
Redirect 301 /sommer/2008_nordsee http://www.example.com/sommer/2008-nordsee/?
Dieses "/?" (Slash Fragezeichen) am Ende bekomme ich nicht weg. Weder in "Artikeln" noch in "Kategorien".
Meine anfängliche Idee war, dass ich nur die kompletten Ordner weiterleiten muss, da in den Artikel-Namen nur sehr vereinzelt Unterstriche vorkamen. Hauptsächlich waren sie in den Kategorie-Namen (Ordner).
Dazu habe ich dieses RewriteRule gefunden, aber es funktioniert nicht. Auch nicht in irgendwelchen Abwandlungen.
Code:
RewriteRule ^sommer/2008_nordsee/(.*)$ /sommer/2008-nordsee/$1 [R=301,NC,L]
Hat jemand eine Ahnung wie ich das Weiterleiten kompletter Ordner realisieren kann?
Der Rewrite Eintrag in meiner .htaccess.
Code:
<IfModule mod_rewrite.c> # Options +SymLinksIfOwnerMatch RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?kohana_uri=$1 [QSA,PT,L] RewriteRule ^$ index.php?kohana_uri=$1 [QSA,PT,L] RewriteRule ^index.php/(.*) $1 [QSA,R,L] </IfModule>
Kommentar