Apache - Redirect 301 pdf zu pdf mit Leerzeichen (Binärdatei)
-
19-09-2019 - |
Frage
Was ich will:
Um 301-Weiterleitung /file_new.pdf zu / Datei new.pdf (% 20 aka Raum zwischen Datei und neu)
Ich bin mir bewusst, dass:
- kann ich auf RewriteRule 301 verlassen, die mod_rewrite verwendet, um eine Lösung aus diesem Thread mit: @ mod_rewrite mit Leerzeichen im Urls
- kann ich die Datei umbenennen, um keine Leerzeichen enthalten und ersetzen sie durch Bindestriche / Unterstrichen
Allerdings bin ich persönlich neugierig, wie man dies tun würde. Hier ist, was ich bisher:
Redirect 301 /file_new.pdf http://sitename.com/file\ new.pdf
Der Conf-Datei-Parser wirft einen Fehler, wenn Ich rufe die configtest:
Redirect zwei oder drei Argumente übernimmt, ein optionaler Status, dann dokumentieren umgeleitet werden und die Ziel-URL
Edit: Anscheinend ist die mod_rewrite noch Redirect 301 Methoden für mich arbeiten, möglicherweise, weil aus irgendeinem Grunde sind sie nicht anwenden, da die Datei an dieser Stelle tatsächlich vorhanden ist.
<VirtualHost *:80>
DocumentRoot /www/sitename_com
ServerName site.local
Options -MultiViews
RewriteEngine on
Redirect 301 /pdf/file_new.pdf http://site.local/pdf/file%20new.pdf
RewriteRule ^/pdf/file_new.pdf http://site.local/pdf/file\ new.pdf
RewriteLog "/www/rewrite.log"
</VirtualHost>
In rewrite.log, es versucht, das Muster zu jedem entsprechenden uri entsprechen / HTTP-Anfrage .. Ich denke, etwas Kontrolle nimmt, bevor es kommt noch zu dem mod_alias / mod_rewrite Sachen.
Also um es zusammenzufassen, es direkt an Datei_neu.pdf im Browser geht und nicht 301. Ich bin sicher, dass alias
und rewrite
aktiviert sind. Meine Apache-Version ist 2.2.
Lösung
die Redirect
tatsächlich Teil mod_alias ist, mod_rewrite nicht. ich bin das% 20 gerne gearbeitet und Sie können auch Anführungszeichen verwenden Apache zu sagen, dass der Weg, den Raum enthält die URL ist und nicht zwei separate Elemente zu umleiten:
Redirect 301 /pdf/file_new.pdf "http://site.local/pdf/file new.pdf"