Autor Thema: .htaccess redirect 301  (Gelesen 6559 mal)

Offline Daranas

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
.htaccess redirect 301
« am: 07.08.2014 11:16 »
Hallo zusammen,
vielleicht kann mir ja hier der ein oder andere weiterhelfen. Ich erstelle gerade einige 301 Redirects in meiner htaccess. Das ganze klappt auch soweit. URLs werden richtig weitergeleitet. Nur bei URLs mit einem "%" klappt es nicht. Bsp.: /Tisch-Prospekthalter%20DIN%20A4  Es liegt definitiv am "%". Aber ich finde nirgends eine Lösung dafür. Hat einer von euch eine Idee?

Ich Betreibe noch einen Shopwareshop. Deswegen ist folgende Regel auch noch aktiv:
<IfModule mod_rewrite.c>
RewriteEngine on

#RewriteBase /shopware/

RewriteRule shopware.dll shopware.php
RewriteRule files/documents/.* engine [NC,L]
RewriteRule backend/media/(.*) media/$1 [NC,L]

RewriteCond %{REQUEST_URI} !(\/(engine|files|templates)\/)
RewriteCond %{REQUEST_URI} !(\/media\/(archive|banner|image|music|pdf|unknown|video)\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ shopware.php [PT,L,QSA]
</IfModule>

Vielen Dank schon mal.

Profihost - Joern Ludwig

  • Gast
Re: .htaccess redirect 301
« Antwort #1 am: 07.08.2014 15:22 »
Hallo,

das Prozentzeichen stellt ein spezielles Zeichen in Rewrite Rules dar. Aus diesem Grund müssten Sie dieses Zeichen in Ihren Redirects mit einen Backslash (\) "escapen".

Hier ein Beispiel:

RewriteRule ^Tisch-Prospekthalter\%20DIN\%20A4$ Tisch-Prospekthalter-DIN-A4.html [L,R=301]


In dem Beispiel wird Tisch-Prospekthalter%20DIN%20A4 umgeschrieben auf Tisch-Prospekthalter-DIN-A4.html

Offline Daranas

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
Re: .htaccess redirect 301
« Antwort #2 am: 07.08.2014 22:09 »
Danke für die Antwort

Komischerweise funktioniert die RewriteRule gar nicht. Ich habe schon alles mögliche ausprobiert.

Eigentlich sollten selbst die einfachen URLs umgeleitet werden:

RewriteEngine On
RewriteRule ^/abcurl$ http://www.meineurl.de/abcdurl [L,R=301]

Aber da klappt gar nichts. Das hier funktioniert bestens:

Redirect 301 /abcurl http://www.meineurl.de/abcdurl


Leider habe ich zusätzlich das unglaubliche Pech das die Urls so lauten:

/Products/%22abc%20def%22

Das heißt am Ende kommen noch Anführungszeichen. Und zwei Anführungszeichen hintereinander sind auch nicht erlaubt.

Profihost - Joern Ludwig

  • Gast
Re: .htaccess redirect 301
« Antwort #3 am: 08.08.2014 10:21 »
Hallo,

Zitat
RewriteEngine On
RewriteRule ^/abcurl$ http://www.meineurl.de/abcdurl [L,R=301]

Entfernen Sie in dieser Regel bitte den anfänglichen Slash bei ^/abcurl$.

RewriteEngine On
RewriteRule ^abcurl$ [url]http://www.meineurl.de/abcdurl[/url] [L,R=301]

Die Regel sollte dann greifen. Es wird dann http://www.meineurl.de/abcurl auf http://www.meineurl.de/abcdurl umgeschrieben.

Wenn Sie nun mit Leerzeichen arbeiten müsste die Regel so aussehen:

RewriteEngine On
RewriteRule ^abcurl$ [url]http://www.meineurl.de/abcdurl\%20test[/url] [L,R=301]

In diesem Fall fügen Sie anstatt des Leerzeichens die Zeichen kette "\%20" ein. Es wird dann http://www.meineurl.de/abcurl umgeschrieben auf http://www.meineurl.de/abcdurl%20test

Offline Daranas

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
Re: .htaccess redirect 301
« Antwort #4 am: 11.08.2014 15:11 »
Erst einmal vielen Dank für die Hilfe.

Folgende Regel klappt schon mal so halb  :)

RewriteEngine on
RewriteRule ^es229966.sf/de_DE/\ "$ http://www.url.de/abc/ [NE,L,R=301]

Die %22 aus der original stammenden URL schreibe ich einfach vorher in normale Anführungszeichen um:". Die %20 schreibe ich in \ um (\Leerzeichen). Wenn man jetzt es229966.sf/de_DE/%20%22 eingibt wird man wie gewünscht umgeleitet. Ich weiß zwar nicht ob das die feine Art ist aber es funktioniert.

Mein Problem ist jetzt "nur" noch folgendes. Die auszutauschende URL hat auch noch ein Fragezeichen "?". Also es229966.sf/?de_DE/%20%22 Ich habe schon den Flag QSA ausprobiert und einiges anderes. Aber nichts hat geklappt. Kann mich da einer evtl. in die richtige Richtung stoßen?

Danke

Profihost - Joern Ludwig

  • Gast
Re: .htaccess redirect 301
« Antwort #5 am: 28.10.2014 08:32 »
Hallo,

haben Sie bereits versucht das "?" Zeichen mit einem "\" Zeichen zu versehen?
Also z.B.

es229966.sf/\?de_DE/