Ich habe einige alte URLs, die ich weitergeleitet werden muss, leider enthalten einige von ihnen Leerzeichen. Ich leite sie auf mein redirect.php
Skript um, aber aus irgendeinem Grund, wenn die URL Leerzeichen enthält oder , in der URL nach der Umleitung dieses% 20 wiederholt unbegrenzte Male. Dies scheint nur jetzt zu geschehen, wenn wir den Server auf HTTPS umgestellt haben, wenn er auf einer http-Subdomain läuft oder auf meinem lokalen es richtig funktioniert..htaccess-Weiterleitung zeigt mehrere% 20, wenn die URL Speicherplatz auf HTTPS enthält
Meine Regel ist:
RewriteRule ^/?(gallery\.php)(.*) /redirect.php$2 [R,L]
Das funktioniert richtig:
gallery.php?place=name
->redirect.php?place=name
Aber dies geschieht, wenn URL Leerzeichen enthält:
gallery.php?place=long%20name
->
redirect.php?place=long%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name
Ich versuchte [B]
und [NE]
Flaggen aber keinen Erfolg hinzufügen. Gibt es etwas, was mir fehlt?
UPDATE 1: Um andere Regeln in Htaccess auszuschließen, habe ich ein neues Beispiel erstellt. Ich habe leeres Verzeichnis /test/
, innen ist leer Datei /test/index.php
und /test/.htaccess
-Datei, die enthält:
RewriteEngine On
RewriteRule ^/?(index\.php)(.*) /$2 [NE,R,L]
Das ist alles. Dennoch ist das Verhalten seltsam, zB: /test/index.php?a=xy funktioniert wie erwartet, aber /test/index.php?a=x%20y wiederholt das% 20-Zeichen.
Interessant, es sollte funktionieren. Es funktioniert für mich mit Ihrem genauen Code, mit SSL. Haben Sie andere Umschreibungen/Weiterleitungen in Ihrem .htaccess? Wenn das Ganze in Ihrer Frage gepostet wird, könnte das vielleicht etwas Licht ins Dunkel bringen. – Vrac
@Vrac Ich habe meine Frage aktualisiert und Live-Beispiel hinzugefügt – Ziki
Kontrollieren Sie diesen Server? Setzen Sie 'LogLevel alarm rewrite: trace6' in httpd.conf und beenden Sie das Apache-Fehlerprotokoll. – Vrac