Директива RewriteBase
| Описание: | Устанавливает базовый URL для преобразований в каталоге | 
| Синтаксис: | RewriteBase directory-path | 
| Значение по умолчанию: | physical-directory-path | 
| Контекст: | directory, .htaccess | 
| Статус: | Расширение | 
| Модуль: | mod_rewrite | 
Директива RewriteBase устанавливает конкретный, базовый URL для преобразований в контексте каталога. Как вы увидите ниже, RewriteRule может быть использовано в конфигурационных файлах каталогов (.htaccess). Это будет работать локально, т.е., префикс локального каталога отбрасывается на этом этапе обработки и ваши правила преобразований работают только в оставшейся части. В конце он автоматически добавляется обратно к пути. Настройка по-умолчанию; RewriteBase physical-directory-path
Когда, для какого-нибудь нового URL происходит преобразование, этот модуль должен заново вовлечь этот URL в обработку. Для того чтобы иметь возможность сделать это, нужно знать какие у него префикс или база URL. По-умолчанию этот префикс равен самому пути. Однако на большинстве сайтов URL'ы НЕ прямо соответствуют физическим путям, поэтому это допущение обычно окажется неверным! В этом случае вы должны использовать директиву RewriteBase для указания правильного префикса URL.
Если URL вашего сервера не соответствуют физическим путям к файлам, вы должны использовать RewriteBase в каждом из .htaccess файлов где вы хотите использовать директивы RewriteRule.
Например, предположим следующий конфигурационный файл каталога:
# /abc/def/.htaccess -- конфигурационный файл каталога /abc/def # Помните: /abc/def это физический путь /xyz, т.е., у сервера есть # директива 'Alias /xyz /abc/def' к примеру RewriteEngine On # даем серверу знать что мы работаем через /xyz а не # через префикс физического пути /abc/def RewriteBase /xyz # теперь правила преобразований RewriteRule ^oldstuff\.html$ newstuff.html
В примере выше, запрос к /xyz/oldstuff.html корректно преобразуется в физический файл /abc/def/newstuff.html.
03.08.2007


