Öneri Apache projesinden geçerli:
Genel olarak .htaccess dosyalarını yalnızca ana sunucu yapılandırma dosyasına erişiminiz olmadığında kullanmalısınız. ... yaygın bir yanlış anlama , kullanıcı kimlik doğrulaması ve mod_rewrite yönergelerinin .htaccess
dosyalara girmesi gerektiğidir .
Bu yüzden lütfen AllowOverride None
ana httpd.conf (ve / veya sizin alt bölümlerinizde Include
) ve diğer tüm direktiflerinizi ayarlayın
Apache sizinle yapılandırılmadığında , AllowOverride None
herhangi bir .htaccess
dosyanın kullanılıp kullanılmamasından bağımsız olarak zaten bir (küçük) performans cezası oluşur .
Bunun nedeni , her istek için apache'nin .htaccess
istenen kaynağa giden her (alt) dizinde potansiyel bir dosyanın varlığını kontrol etmesi gerekecektir . Örneğin, / www / htdocs / example dizininden bir dosya istendiğinde, apache aşağıdaki dosyaları aramalıdır:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
Bu nedenle, bu dizinden her dosya erişimi için, bu dosyalardan hiçbiri mevcut olmasa bile, 4 ek dosya sistemi erişimi vardır. (AllowOveride / için ayarlanmışsa)
Bunun için kullanılan sistem çağrısı ( man 2 stat
) tek başına pahalı değildir ve gerçek IO gereksinimlerini sınırlamak yerine gerçek diski yoklamak yerine genellikle dosya sistemi önbelleği kullanılır, ancak yine de bu makalede iddia edildiği gibi eklenebilir .
Bir veya daha fazla gerçek .htaccess
dosya gerçekten mevcut olduğunda, apache'nin yine de open
okuması ve okuması gerekir ( dosya sistemi özniteliğini güncellemek için başka bir IO okuma işlemini ve genellikle bir IO yazma işlemini tetikler atime
) ve buradaki mantık uygulanmadan önce ayrıştırır .
Yönergeleriniz httpd.conf
, başlangıçta yalnızca bir kez ayrıştırmak için apache'ye ihtiyaç duyduğundan farklı olarak, başlangıçta her .htaccess
dosyanın her istek için yeniden yorumlanması gerekir.
IO işlemlerine ek olarak, .htaccess dosyalarını ayrıştırma karmaşıklıklarına bağlıdır.
Bunu belirlemek için dikkatli bir kıyaslama yapılacaktır.