mod-rewrite
Dyrektywy dostarczone przez mod-rewrite w Apache 2.4
Szukaj…
Składnia
- RewriteBase ścieżka-URL
- RewriteCond TestString CondPattern
- RewriteEngine on | off
- RewriteMap MapName MapType: MapSource
- Opcje RewriteOptions
- Zmiana wzoru RewriteRule [flagi]
Lista dyrektyw dostępnych w Apache 2.4
Apache 2.4 udostępnia następujące 6 dyrektyw poprzez moduł mod_rewrite :
- RewriteBase
- RewriteCond
- RewriteEngine
- RewriteMap
- RewriteOptions
- RewriteRule
Usunięto następujące dyrektywy, dostępne wcześniej w Apache 2.2:
- RewriteLock
- RewriteLog
- RewriteLogLevel
Wszystkie dyrektywy (z wyjątkiem RewriteMap ) zdefiniowane przez mod_rewrite mogą mieć możliwość zastępowania w katalogu .htaccess za pośrednictwem AllowOverride FileInfo .
| Dyrektywa | Kontekst | Opis |
|---|---|---|
| RewriteBase | katalog, .htaccess | Ustawia podstawowy adres URL dla każdego przepisywania katalogu |
| RewriteCond | Wszędzie | Określa warunki, w których nastąpi operacja przepisywania |
| RewriteEngine | Wszędzie | Ustawia status silnika przepisywania |
| RewriteMap | konfiguracja serwera, wirtualny host | Definiuje funkcję wyszukiwania klucza |
| RewriteOptions | Wszędzie | Ustawia specjalne opcje dla silnika przepisywania |
| RewriteRule | Wszędzie | Definiuje szczegółowe zasady przepisywania silnika |
Kontekst Everwhere oznacza, że dyrektywę można zdefiniować w jednym z czterech następujących miejsc:
- konfiguracja serwera
- konfiguracja wirtualnego hosta
- kontekst katalogu
- plik .htaccess
Dyrektywy RewriteLog i RewriteLogLevel zostały połączone z globalną dyrektywą LogLevel i będą używane jako:
LogLevel rewrite:<level>
gdzie <level> to wartość od trace8 (najmniej znacząca) do emerg (najbardziej znacząca). Ta lista jest dostępna tutaj .
RewriteBase i RewriteEngine
| Dyrektywa | Domyślna | Kontekst | Opis |
|---|---|---|---|
| RewriteBase | Żaden | Katalog, .htaccess | Ustawia podstawowy adres URL dla każdego przepisywania katalogu |
| RewriteEngine | poza | wszędzie | Włącz lub wyłącz silnik przepisywania środowiska wykonawczego |
RewriteBase
Dyrektywa określa prefiks adresu URL, który ma być używany do podstawiania ścieżek względnych.
RewriteEngine
Dyrektywa, jeśli jest ustawiona na off , nie wykona przetwarzania przepisywania środowiska wykonawczego. Reguły te nie są dziedziczone przez hosty wirtualne (z konfiguracji serwera) i należy je zdefiniować indywidualnie.
RewriteMap
Dyrektywa definiuje funkcję, która będzie wyszukiwać klucz na zdefiniowanej mapie i zamienia wyszukiwanie na jego zastąpienie z mapy.
Funkcja mapowania jest zdefiniowana w RewriteMap dyrektywie RewriteMap w następujący sposób:
RewriteMap MAPNAME Type:Source
i można się do nich odwoływać w dowolnej z dyrektyw RewriteCond lub RewriteRule aby działać jak przewodnik po substytucji w następujący sposób:
${ MAPNAME : KEY | DEFAULT }
Poniżej podano poprawne wartości parametru Type w definicji mapy:
-
int- pozwala tylko natoupper,tolower,escapeiunescape -
txt- przeszukuje plik tekstowy -
dbd- wyszukuje w bazie danych za pomocą instrukcji SQLSELECT -
rnd- losowe wyszukiwania z pliku tekstowego -
dbm- podobny dotxt, z tym wyjątkiem, żehttxt2dbmmusi przekonwertować dane na skróty -
fastdbd- wyszukuje w bazie danych za pomocą instrukcji SQLSELECTz buforowaniem