Apache - Redirect 301 PDF a PDF con spazi (file binario)
-
19-09-2019 - |
Domanda
Quello che voglio:
Per redirect 301 /file_new.pdf a / New.pdf del file (% 20 aka spazio tra di file e nuovo)
Sono consapevole del fatto che:
- posso contare su RewriteRule 301 che utilizza mod_rewrite, utilizzando una soluzione a questa discussione: @ mod_rewrite con spazi negli URL
- posso rinominare il file di non includere spazi e sostituirli con trattini di sottolineatura /
Tuttavia, sono personalmente curioso di sapere come si potrebbe fare questo. Ecco quello che ho finora:
Redirect 301 /file_new.pdf http://sitename.com/file\ new.pdf
Il file di configurazione parser genera un errore quando invoco la configtest:
reindirizzamento prende due o tre argomenti, uno stato opzionale, quindi documentare a essere reindirizzati e URL di destinazione
Modifica A quanto pare il mod_rewrite né reindirizzamento 301 metodi stanno lavorando per me, forse perché per qualsiasi motivo non stanno applicando perché il file esiste realmente in quella posizione.
<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, si cerca di abbinare il modello di ogni rispettivo URI della richiesta / http .. Credo che qualcosa sta prendendo il controllo prima che arrivi anche al roba mod_alias / mod_rewrite.
Quindi, per riassumere, si va direttamente al file_new.pdf nel browser e non lo fa 301. Sono positivo che alias
e rewrite
sono abilitati. La mia versione di Apache è 2.2.
Soluzione
la Redirect
è in realtà parte di mod_alias, non mod_rewrite. io sono contento che il% 20 ha lavorato e si può anche usare le virgolette per dire apache che il percorso che include lo spazio è l'URL per reindirizzare e non due elementi separati:
Redirect 301 /pdf/file_new.pdf "http://site.local/pdf/file new.pdf"