Zalecenie z projektu Apache jest:
Zasadniczo powinieneś używać plików .htaccess tylko wtedy, gdy nie masz dostępu do głównego pliku konfiguracyjnego serwera. ... powszechnym nieporozumieniem jest to, że uwierzytelnianie użytkownika i dyrektywy mod_rewrite muszą iść w .htaccess
plikach.
Więc proszę zarówno ustaw, jak AllowOverride None
i wszystkie pozostałe dyrektywy w głównym httpd.conf (i / lub w podsekcjach Include
)
Gdy Apache nie jest skonfigurowany z AllowOverride None
tobą, występuje (niewielka) obniżka wydajności, niezależnie od tego, czy .htaccess
używane są żadne pliki.
Dzieje się tak, ponieważ dla każdego żądania apache będzie musiał sprawdzić obecność potencjalnego .htaccess
pliku w każdym (pod) katalogu prowadzącym do żądanego zasobu. Na przykład, gdy żądany jest plik z katalogu / www / htdocs / example, apache musi szukać następujących plików:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
I tak, dla każdego dostępu do pliku z tego katalogu istnieją 4 dodatkowe dostępy do systemu plików, nawet jeśli żaden z tych plików nie jest obecny. (Jeśli opcja AllowOveride jest ustawiona na /)
Wywołanie systemowe użyte do tego celu ( man 2 stat
) samo w sobie nie jest tak drogie i zwykle pamięć podręczna systemu plików jest używana zamiast sondowania rzeczywistego dysku, ograniczając rzeczywiste wymagania we / wy, ale nadal można go sumować, jak argumentuje ten artykuł .
Gdy jeden lub więcej rzeczywistych .htaccess
plików jest rzeczywiście obecnych, apache nadal musi je open
odczytać (wyzwalając kolejną operację odczytu IO i zwykle także operację zapisu IO w celu zaktualizowania atime
atrybutu systemu plików ) i przeanalizować go, zanim będzie można zastosować logikę.
W przeciwieństwie do tego, kiedy twoje dyrektywy są w głównym pliku httpd.conf
, który potrzebuje tylko apache do ich parsowania raz, podczas uruchamiania każdy .htaccess
plik musi być interpretowany ponownie dla każdego żądania.
Koszt, oprócz operacji IO, analizy plików .htaccess zależy od ich złożoności.
Będzie to wymagało starannej analizy porównawczej.