Apache - Redirect 301 pdf ao pdf com espaços (arquivo binário)
-
19-09-2019 - |
Pergunta
O que eu quero:
Para redirecionamento 301 /file_new.pdf para / New.pdf arquivo (% 20 aka espaço entre arquivo e novo)
Estou ciente de que:
- posso contar com RewriteRule 301, que usa mod_rewrite, usando uma solução de esta discussão: @ mod_rewrite com espaços no urls
- Eu posso mudar o nome do arquivo para não incluir espaços e substituí-los com traços / sublinhados
No entanto, eu pessoalmente estou curioso para saber como seria fazer isso. Aqui está o que eu tenho até agora:
Redirect 301 /file_new.pdf http://sitename.com/file\ new.pdf
O analisador de arquivo conf lança um erro quando invoco a configtest:
Redirect leva dois ou três argumentos, um status opcional, então documentar a ser redirecionada e URL de destino
Editar: Aparentemente, o mod_rewrite nem redirecionamento 301 métodos estão trabalhando para mim, possivelmente porque por qualquer razão que não está aplicando porque o arquivo realmente existe nesse local.
<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>
Em rewrite.log, ele tenta corresponder ao padrão de cada respectivo uri / http pedido .. Eu acho que algo está tomando o controle antes mesmo aos mod_alias / material mod_rewrite.
Assim, para resumir, ele vai diretamente para file_new.pdf no navegador e não 301. Eu sou positivo que alias
e rewrite
estão habilitados. Minha versão apache é 2.2.
Solução
o Redirect
é realmente parte do mod_alias, não mod_rewrite. Fico feliz por% 20 trabalhou e você também pode usar aspas para dizer apache que o caminho que inclui o espaço é a URL para redirecionar para e não dois itens separados:
Redirect 301 /pdf/file_new.pdf "http://site.local/pdf/file new.pdf"