Para redirecionamentos simples, o RewriteEngine
é um exagero. Basta adicionar isso à sua definição de site:
Redirect /abc/a.zip http://example.com/abc/b.zip
Veja o exemplo na documentação do Apache.
Eu editei meu arquivo host assim.
example.com/abc/a.zip example.com/abc/b.ziP
Então, o que preciso fazer é quando eu insiro o URL example.com/abc/a.zip no navegador e ele deve ser redirecionado para example.com/abc/b.zip. Mas isso não funciona. Então, onde está a culpa?
Existem outras maneiras de fazer isso?
Se você quiser remapear url
para um local diferente, mas os clientes ainda acessarem e conhecerem o URL original, use a diretiva RewriteRule
.
Tente adicionar essas linhas na seção VirtualHost :
RewriteEngine on
RewriteRule ^/abc/a\.zip$ /abc/b.ziP [PT]
Aqui está a sintaxe RewriteRule:
RewriteRule Pattern Substitution [flags]
onde, de acordo com o apache mod_rewrite manual :
Pattern: In VirtualHost context, The Pattern will initially be matched
against the part of the URL after the hostname and port, and
before the query string (e.g. "/app1/index.html").
Substitution: A DocumentRoot-relative path to the resource to be served.
Note that mod_rewrite tries to guess whether you have specified a
file-system path or a URL-path by checking to see if the first
segment of the path exists at the root of the file-system.
For example, if you specify a Substitution string of
/www/file.html, then this will be treated as a URL-path unless
a directory named www exists at the root or your file-system
(or, in the case of using rewrites in a .htaccess file, relative
to your document root), in which case it will be treated as a
file-system path.
If you wish other URL-mapping directives (such as Alias) to be
applied to the resulting URL-path, use the [PT] flag as described below.
flag: special action
Nesse caso, o valor do sinalizador é PT, isso significa:
passthrough|PT Forces the resulting URI to be passed back to the URL
mapping engine for processing of other URI-to-filename translators,
such as Alias or Redirect. details ...
Aqui é um link útil com exemplos.
Existe uma diretiva Alias que remapear a localização do conteúdo também. Este é útil se a localização do conteúdo estiver fora de DocumentRoot
.
Se você deseja informar ao cliente que o conteúdo solicitado está localizado em uma URL diferente e instruir o cliente a fazer uma nova solicitação com a nova URL, use Diretiva Redirecionar .
tente adicionar esta linha na seção VirtualHost :
Redirect permanent /abc/a.zip http://example.com/abc/b.ziP
Isso é útil para informar ao robô que o conteúdo é movido em outro local e evitar erros de indexação nos mecanismos de pesquisa.