mod-rewrite Samouczek
Rozpoczęcie pracy z mod-rewrite
Szukaj…
Uwagi
mod_rewrite to moduł dla Apache. Ten moduł służy do wewnętrznych przeróbek (zewnętrznych żądań, które powinny załadować inny zasób) i zewnętrznych przekierowań (zewnętrznych żądań, które powinny zmienić żądanie klienta w inny adres URL).
mod_rewrite zapewnia lepszą kontrolę nad wewnętrznymi zapisami niż mod_alias , ponieważ ten ostatni może mapować żądania tylko do nazw plików. mod_rewrite zapewnia pewne środki kontroli dostępu , ale zwykle lepiej to zrobić za pomocą mod_authz_core i mod_authz_host . mod_rewrite zapewnia pewną integrację z mod_proxy , ale ze względu na wydajność ta integracja nie powinna być używana, a zamiast tego należy użyć ProxyPass
i ProxyPassMatch
tego drugiego modułu.
mod_rewrite można skonfigurować w sposób umożliwiający umieszczanie dyrektyw w plikach konfiguracyjnych dynamicznych (.htaccess). Ze względu na wydajność należy zawsze używać statycznego pliku konfiguracyjnego (httpd.conf), gdy tylko jest to możliwe.
Wersje
Wersja | Data wydania |
---|---|
2.2 | 2015-07-17 |
2.4 | 2016-07-05 |
Instalacja
mod_rewrite musi być włączony przed użyciem na serwerze Apache.
Debian / Ubuntu
Uruchom a2enmod rewrite
Następnie zrestartuj Apache za pomocą service apache2 restart
Ogólna sprawa
Dodaj lub usuń komentarz z następującego wiersza w statycznym pliku konfiguracyjnym (takim jak httpd.conf
):
LoadModule rewrite_module modules/mod_rewrite.so
Następnie uruchom ponownie Apache.
Używanie mod_rewrite w statycznym pliku konfiguracyjnym
Dodaj następującą dyrektywę przed użyciem innej dyrektywy mod_rewrite (RewriteRule, RewriteCond, RewriteBase lub RewriteMap).
RewriteEngine on
Domyślnie silnik jest wyłączony. Dyrektywy mod_rewrite znalezione przy wyłączonym silniku są ignorowane. Włącz ją z poziomu wirtualnego hosta podczas korzystania z hostów wirtualnych lub z określonych kontekstów katalogu, jeśli ma to zastosowanie.
Używanie mod_rewrite z dynamicznych plików konfiguracyjnych
Ważne: Korzystanie z dynamicznych plików konfiguracyjnych (.htaccess) jest dużym hitem wydajności. Gdy masz dostęp do statycznego pliku konfiguracyjnego (httpd.conf lub coś podobnego), powinieneś go użyć.
W statycznym pliku konfiguracyjnym pozwól, aby dynamiczne pliki konfiguracyjne zastępowały „Fileinfo” za pomocą AllowOverride
. Niniejsza dyrektywa musi być umieszczona w kontekście katalogu:
AllowOverride FileInfo
Nazwa pliku używana dla plików konfiguracji dynamicznej podlega dyrektywie AccessFileName
. Domyślnie dynamiczne pliki konfiguracyjne to ukryte pliki o nazwie .htaccess
.
U góry każdego dynamicznego pliku konfiguracyjnego zawierającego dyrektywy mod_rewrite dodaj następującą dyrektywę:
RewriteEngine on