X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

₺ Türk Lirası $ US Dollar
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

₺ Türk Lirası $ US Dollar

apache sunucu .htaccess Kuralları Çalışmıyorsa Ne Yapılır?

AnasayfaYazılarTeknik Rehberlerapache sunucu .htaccess Kuralları Ç...

apache sunucu üzerinde .htaccess kuralları çalışmıyorsa sorun çoğunlukla dosyanın yanlış dizinde olmasından, Apache yapılandırmasının bu dosyayı okumamasından veya yeniden yazma modülünün etkin olmamasından kaynaklanır. Önce aynı isteğin saatini not edin, mevcut kuralı yedekleyin ve yalnızca tek bir değişkeni değiştirin. Böylece yönlendirme, 404 veya 500 hatasının nedenini güvenli biçimde ayırabilirsiniz.

Sorunun kapsamını ve erişim düzeyini belirleyin

Bu işlem, dosya yöneticisi ya da hosting paneline erişilen paylaşımlı hosting ortamında ve Apache yapılandırmasını değiştirebilen yönetici erişimli sunucuda farklı ilerler. Paylaşımlı hosting kullanıyorsanız genellikle .htaccess dosyasını düzenleyebilir, ancak AllowOverride veya modül ayarlarını değiştiremezsiniz. Yönetilen bir sunucuda ise ilgili sanal konak yapılandırmasını inceleme yetkisi gerekebilir.

Önce hatanın biçimini kaydedin. Eski URL yeni URL'ye gitmiyor ama sayfa açılıyorsa kural hiç uygulanmıyor olabilir. Bunun yerine 404 oluşuyorsa hedef yolun veya uygulamanın giriş dosyasının yanlış eşleşmesi daha olasıdır. Değişiklikten hemen sonra 500 görülüyorsa sözdizimi hatası ya da izin verilen direktiflerin kapsamı daha güçlü bir adaydır. Aynı URL, aynı tarayıcı yöntemi ve mümkünse aynı oturum koşullarıyla test edin.

apache sunucu .htaccess dosyasını gerçekten okuyor mu?

  1. Dosyanın konumunu doğrulayın. Alan adının belge kökünü hosting panelindeki site ayarlarından veya sanal konak yapılandırmasından bulun; .htaccess dosyasının kuralın uygulanmasını beklediğiniz dizinde olduğuna bakın. Dosya yöneticisi gizli dosyaları göstermiyorsa bu seçeneği açın. Dosya farklı bir alt dizindeyse, üst dizindeki URL'lere etki etmemesi normaldir. Konumu yanlışsa önce dosyayı silmeden doğru dizine taşıyın ve özgün kopyayı saklayın.
  2. Apache'nin dosyayı okumaya izin verip vermediğini ayırın. Yönetici erişiminiz varsa ilgili sanal konak ayarındaki AllowOverride değerinin en azından kullandığınız direktifleri kapsayıp kapsamadığını ve mod_rewrite modülünün etkinliğini sunucu yapılandırması ile hata günlüğünden kontrol edin. Paylaşımlı hostingde bu ayarları değiştirmeye çalışmak yerine panelin Apache/PHP ayar ekranında sunulan seçenekleri kullanın veya sağlayıcıdan yalnızca bu iki ayarın durumunu sorun. AllowOverride izin vermiyorsa, kuralı tekrar tekrar değiştirmek sonucu değiştirmez.
  3. Kuralı en küçük güvenli testle sınayın. Mevcut dosyanın bir kopyasını alın ve aynı dosyada yalnızca sorunu temsil eden tek bir kuralı bırakın; uygulamanın diğer kurallarını geçici olarak kaldırmayın, mümkünse yorum satırına alarak özgün içeriği koruyun. Yönetici değilseniz sağlayıcının desteklediği basit bir yönlendirme kuralı kullanın ve kural sözdiziminden emin olmadığınız durumda rastgele direktif eklemeyin. Test URL'sini açtığınızda yönlendirme gerçekleşiyorsa Apache dosyayı okuyordur; gerçekleşmiyorsa konum veya yapılandırma sorununa geri dönün.
  4. Yeni hata kaydını aynı saat aralığında inceleyin. Siteye ait hata günlüğü çoğunlukla hosting panelindeki günlükler bölümünde, yönetici sunucuda ise merkezi günlük izleme aracı veya ilgili sanal konağın tanımlı hata günlüğünde bulunur. Yeni satırda “rewrite” modülünün bulunmadığı veya direktifin izin verilmediği belirtiliyorsa hedefli düzeltme modülü etkinleştirmek ya da AllowOverride kapsamını uygun hale getirmektir. “Invalid command” veya sözdizimi hatası görülüyorsa yalnızca ilgili satırı düzeltin; tüm izinleri genişletmeyin.
  5. Değişiklikten sonra aynı işlemi yeniden yapın. Aynı URL'yi tekrar açın, bu denemenin saatini not edin ve yeni hata günlüğü satırlarını önceki kayıtlarla karıştırmadan kontrol edin. Yönlendirme beklenen adrese gidiyor ve yeni Apache hatası oluşmuyorsa test başarılıdır. Yönlendirme yerine başka bir 404 oluşuyorsa Apache kuralı uygulamış, fakat hedef uygulama yolunu bulamamış demektir; bu kez hedef yolu ve uygulamanın giriş dosyasını inceleyin.

Belirtiye göre doğru düzeltmeyi seçin

Örneğin, varsayımsal olarak /eski-urun adresi her zaman aynı URL'yi göstermeye devam ediyor, ancak hata günlüğünde yeni bir kayıt oluşmuyorsa dosya yanlış belge kökünde olabilir veya Apache dosyayı okumuyor olabilir. Dosyayı doğru köke aldıktan sonra aynı adresi yeniden denersiniz. Bu kez 301 yönlendirmesi görülürse ilk sorun çözülmüştür; 404 görülürse kural okunmuş, fakat yönlendirilen hedefin uygulamada bulunmadığı anlaşılır. İkinci durumda hedef yolu düzeltmek, AllowOverride değerini tekrar değiştirmekten daha doğru adımdır.

Başka bir durumda aynı değişiklikten hemen sonra 500 hatası ve hata günlüğünde geçersiz direktif satırı görülürse modül eksikliğini varsayarak güvenlik ayarlarını gevşetmeyin. Yalnızca hatalı satırı önceki yedeğinizle karşılaştırın, düzeltilmiş kuralı tek başına test edin ve sonra diğer kuralları birer birer geri alın. Her eklemeden sonra hata 500'e dönerse son eklenen satır güçlü adaydır; önceki çalışan değere geri dönün.

Paylaşımlı hosting ve yönetilen sunucuda güvenli sınırlar

Paylaşımlı hostingde .htaccess değişikliği 500 hatasına yol açarsa dosyanın özgün kopyasını geri yüklemek veya son eklenen tek satırı kaldırmak güvenli geri dönüş yoludur. Sunucu genelinde modül açmak, tüm dizinlere geniş yetki vermek veya üretim sitesinde ayrıntılı hata çıktısını herkese göstermek doğru değildir. Yönetici erişimli sunucuda değişiklik öncesi sanal konak yapılandırmasını yedekleyin; yapılandırma doğrulaması başarısızsa servisi yeniden başlatmak yerine önce hatalı dosyayı düzeltin.

Kurallarınız uygulamanın URL yapısını etkiliyorsa, Apache'nin önünde ters vekil sunucu, önbellek veya başka bir web sunucusu bulunması da sonucu değiştirebilir. Bu durumda isteğin gerçekten Apache'ye ulaşıp ulaşmadığını sağlayıcının mimari bilgisi ve zaman damgalı günlüklerle doğrulayın. Sunucu düzeyi erişim veya sanal konak ayarı gerekiyorsa sunucu kiralama çözümleri hakkında bilgi alırken, özellikle AllowOverride ve modül yönetiminin size açık olup olmadığını ayrıca teyit edin.

Sorun devam ederse uygulanacak güvenli sonraki adım

Aynı URL, aynı dosya ve aynı hata günlüğü kaydıyla sorun sürüyorsa tüm kuralları topluca değiştirmeyin. Özgün dosyayı geri yükleyin, çalışan son durumu koruyun ve sağlayıcıya belge kökü, test saati, gözlenen HTTP durumu ve ilgili yeni hata satırının teknik kısmını iletin; kimlik bilgisi veya erişim anahtarı paylaşmayın. Yönetici sunucuda ise yalnızca ilgili sanal konağın yapılandırmasını inceleyerek kuralın hangi dizinde ve hangi izin kapsamıyla uygulandığını doğrulayın.


Top