Я отредактировал свой файл хоста как это.
example.com/abc/a.zip example.com/abc/b.ziP
Таким образом, то, что я должен сделать, - когда я ввожу URL example.com/abc/a.zip в браузер, он должен быть перенаправлен на example.com/abc/b.zip. Но это не работает. Таким образом, где отказ?
И есть ли какие-либо другие способы сделать это?
Для простых перенаправлений, эти RewriteEngine
излишество. Просто добавьте это к своему определению сайта:
Redirect /abc/a.zip http://example.com/abc/b.zip
См. пример в документации Apache.
Если Вы хотите повторно отобразиться url
к другому местоположению, но клиентам все еще доступ и знает исходный URL, необходимо использовать RewriteRule
директива.
Попытайтесь добавить, что это выравнивает в разделе VirtualHost:
RewriteEngine on
RewriteRule ^/abc/a\.zip$ /abc/b.ziP [PT]
Вот синтаксис RewriteRule:
RewriteRule Pattern Substitution [flags]
где, согласно апачскому mod_rewrite руководству:
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
В этом случае флаговым значением является PT tha средства:
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 ...
Вот полезная ссылка с примерами.
Существует директива Псевдонима что местоположение содержания перекарты также. Этот полезен, если местоположение содержания за пределами DocumentRoot
.
Если Вы хотите сообщить клиенту, что требуемое содержание расположено в другом URL, и дайте клиенту команду выполнять новый запрос с новым URL, необходимо использовать директиву Перенаправления.
попытайтесь добавить эту строку в разделе VirtualHost:
Redirect permanent /abc/a.zip http://example.com/abc/b.ziP
Это полезно, чтобы сообщить роботу, что содержание перемещено в другое местоположение и предотвращает ошибки индексации в поисковых системах.