.Htaccess dosyalarımı üretim sunucularına gönderdim, ancak çalışmıyorlar. Yeniden başlatma bir sonraki adım mıydı yoksa başka bir şeyi kontrol etmeli miyim?
.Htaccess dosyalarımı üretim sunucularına gönderdim, ancak çalışmıyorlar. Yeniden başlatma bir sonraki adım mıydı yoksa başka bir şeyi kontrol etmeli miyim?
Yanıtlar:
Bir yeniden başlatma edilir değil .htaccess değişiklikler için gerekli. Bir sorun daha var.
.Htaccess'inizin ifadeyi içerdiğinden emin olun
RewriteEngine açık
httpd.conf dosyasında da mevcut olsa bile bu gereklidir. Ayrıca .htaccess'in httpd işlemi tarafından okunabilir olduğunu kontrol edin.
Error_log dosyasını kontrol edin - eğer kullanılıyorsa .htaccess içindeki hataları size söyleyecektir . .Htaccess'e kasıtlı bir sözdizimi hatası koymak, dosyanın kullanıldığından emin olmak için iyi bir kontroldür - aynı dizindeki herhangi bir sayfada bir 500 hatası almalısınız.
Son olarak, httpd.conf dosyanızda aşağıdaki gibi komutları kullanarak bir yeniden yazma günlüğünü etkinleştirebilirsiniz:
RewriteLog "günlükleri / yeniden yazma günlüğü"
RewriteLogLevel 7
Bu şekilde oluşturulan günlük dosyası, size hangi yeniden yazma kurallarının eşleştiği ve bunların nasıl işlendiği konusunda kanlı ayrıntılar verecektir.
Hayır :
Apache, web ağacının içine yerleştirilmiş özel dosyalar aracılığıyla yapılandırmanın merkezi olmayan yönetimine izin verir. Özel dosyalar genellikle çağrılır
.htaccess
, ancak AccessFileName yönergesinde herhangi bir ad belirtilebilir ... .htaccess dosyaları her istekte okunduğundan, bu dosyalarda yapılan değişiklikler anında geçerli olur ...
Apache belgelerinden: En yaygın olarak sorun, AllowOverride'ın yapılandırma yönergelerinize uyulacak şekilde ayarlanmamasıdır. Söz konusu dosya kapsamı için bir AllowOverride None etkin olmadığından emin olun. Bunun için iyi bir test, .htaccess dosyanıza çöp atmak ve yeniden yüklemektir. Bir sunucu hatası oluşturulmazsa, neredeyse kesinlikle AllowOverride None etkindir.
Aynı sorunu yaşıyorum ve PiedPiper'ın AllowOverride hakkındaki gönderisinin en yararlı olduğu görülüyor. Httpd.conf dosyanızda "AllowOverride" olup olmadığını kontrol edin ve All olarak ayarlandığından emin olun.
.Htaccess durumunda yeniden başlatma gerekli değildir eğer çalışmıyorsa olası nedenler içerir.
AllowOverride httpd.conf içinde hangi kullanıcının ayarlayabileceği veya sunucu yöneticisine başvurması gerekebileceği ayarlanamaz.
.Htaccess'in dosya adını kontrol edin, htaccess.txt değil .htaccess olmalıdır, nasıl oluşturulacağını öğrenmek için buraya bakın .
Kullanım deneyin Options -Indexes
ya deny all
da çalışma olup olmadığını tür basit direktifin görmek için.
tarayıcı önbelleğini her seferinde temizle, yeniden yönlendirmeler veya benzeri bir kural varsa, önceki yönlendirme önbelleğe alınmışsa, işler çalışmıyor gibi görünür.
LogLevel alert rewrite:trace7
. Apache'yi yeniden başlattıktan sonra , error.log'daki izleri görmelisiniz. Umarım yardımcı olur. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging