О сайте | Карта сайта | Календарь сайта | Содержание
www.shtogrin.com  
Главная  //  Библиотека  //  Веб  //  Модуль mod_rewrite  //  Документация mod_rewrite  //  Директива RewriteBase

Директива 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


2006-2024, Roman Shtogrin