- Konu sahibi
- #1
DirectAdmin’de
Dosyadaki kurallar, bulunduğu dizine gelen istekleri işler.
Yaygın yol
DirectAdmin yalnızca dosyayı barındırır; dosyanın kabul edilmesi Apache, PHP çalıştırma yöntemi ve sunucu yöneticisinin etkinleştirdiği modüllere bağlıdır. Bu nedenle bir kuralın çalışmaması her zaman yazım hatası anlamına gelmez. Özellikle yeniden yazma kuralları için sunucuda ilgili rewrite modülünün ve uygulamanın doğru yapılandırmasının bulunması gerekir.
DirectAdmin nginx_apache kurulumunda statik dosyaları Nginx, PHP isteklerini Apache işleyebilir. Bu nedenle Apache .htaccess kuralının bütün statik yanıtlara uygulanacağını varsaymayın. Saf Nginx ile Nginx+Apache aynı kurulum değildir; yeniden yazma veya erişim denetiminin hangi katmanda işleyeceğini ayırın. OpenLiteSpeed desteği de tam Apache uyumluluğu sayılmaz.
Aşağıdaki örnek, sitenin web kökündeki
Uygulama adımları:
Sitenin normal açılması dosyanın okunduğunu tek başına kanıtlamaz; sunucunun varsayılan giriş listesi aynı sonucu verebilir. Kuralın etkisini ayırmak gerekiyorsa erişimi sınırlı bir test dizininde benzersiz adlı giriş dosyası kullanın ve ilgili Apache/Nginx istek kaydını kontrol edin. Mevcut uygulama kurallarını bu test için kaldırmayın.
Aynı dosyayı farklı konumlara koymak farklı kapsamlar doğurur:
Kuralı yalnızca bir uygulamaya uygulamak istiyorsanız dosyayı o uygulamanın klasörüne koymak daha güvenlidir. Buna karşılık tüm alan adını etkileyen bir ayar için web kökündeki dosyayı kullanın. Aynı yönergeyi hem üst hem alt dizindeki dosyalara eklemek yerine tek bir yerde tutun.
Dosya yöneticisinde gizli dosyaları gösterme seçeneğini açın. Bu seçenek yoksa SFTP veya SSH ile
Çoğu
.htaccess dosyası, Apache veya Apache uyumlu bir web sunucusunda site klasörüne yerleştirilen ve o klasör ile alt klasörlerin davranışını belirleyen gizli yapılandırma dosyasıdır. Genellikle alan adının web kökü olan public_html içine konur. Dosya görünmüyorsa Dosya Yöneticisi’nde gizli dosyaları gösterme seçeneğini etkinleştirin veya dosyayı SSH/SFTP ile kontrol edin. Sunucunuz yalnızca Nginx kullanıyorsa .htaccess okunmaz; bu durumda aynı kuralı sunucu yapılandırmasına taşımak gerekir..htaccess nasıl çalışır?
Dosyadaki kurallar, bulunduğu dizine gelen istekleri işler.
public_html/.htaccess içindeki bir kural ana alan adını ve alt dizinleri etkileyebilir. public_html/blog/.htaccess ise çoğunlukla yalnızca blog ve altındaki istekler için kullanılır. Alt dizindeki kurallar üst dizindeki kurallarla birlikte değerlendirilebildiği için aynı ayarı birden çok dosyada tekrar etmek çakışmaya yol açabilir.Yaygın yol
/home/KULLANICI/domains/example.com/public_html/.htaccess biçimindedir; HTTP ve HTTPS farklı document root kullanabiliyorsa private_html konumu da ayrıca kontrol edilmelidir. Bunların aynı klasör olduğunu varsaymayın. Yetkili yönetici da docs-root çıktısıyla gerçek HTTP/HTTPS köklerini hesaplatabilir; paylaşımlı hesap bu çıktıyı sağlayıcısından isteyebilir.DirectAdmin yalnızca dosyayı barındırır; dosyanın kabul edilmesi Apache, PHP çalıştırma yöntemi ve sunucu yöneticisinin etkinleştirdiği modüllere bağlıdır. Bu nedenle bir kuralın çalışmaması her zaman yazım hatası anlamına gelmez. Özellikle yeniden yazma kuralları için sunucuda ilgili rewrite modülünün ve uygulamanın doğru yapılandırmasının bulunması gerekir.
Belge kökü ve web sunucusunu doğrulama
DirectAdmin nginx_apache kurulumunda statik dosyaları Nginx, PHP isteklerini Apache işleyebilir. Bu nedenle Apache .htaccess kuralının bütün statik yanıtlara uygulanacağını varsaymayın. Saf Nginx ile Nginx+Apache aynı kurulum değildir; yeniden yazma veya erişim denetiminin hangi katmanda işleyeceğini ayırın. OpenLiteSpeed desteği de tam Apache uyumluluğu sayılmaz.
DirectoryIndex yapılandırma örneği
Aşağıdaki örnek, sitenin web kökündeki
.htaccess dosyasına konulabilir. index.html veya index.php dosyanızın gerçekten mevcut olduğunu varsayar:
Kod:
DirectoryIndex index.php index.html
Uygulama adımları:
- DirectAdmin’e giriş yapın ve ilgili alan adının dosya yöneticisini açın.
- Alan adının
public_htmlklasörüne geçin. Mevcut bir.htaccessvarsa önce içeriğini yedekleyin; yoksa tam olarak.htaccessadında yeni bir dosya oluşturun. - Yukarıdaki tek satırı kaydedin.
index.phpyoksa örnekte yalnızca mevcut giriş dosyasını kullanın. - Alan adını yeni bir gizli pencereyle açın ve dizin adresinin otomatik olarak beklenen giriş dosyasını gösterip göstermediğini kontrol edin.
Sitenin normal açılması dosyanın okunduğunu tek başına kanıtlamaz; sunucunun varsayılan giriş listesi aynı sonucu verebilir. Kuralın etkisini ayırmak gerekiyorsa erişimi sınırlı bir test dizininde benzersiz adlı giriş dosyası kullanın ve ilgili Apache/Nginx istek kaydını kontrol edin. Mevcut uygulama kurallarını bu test için kaldırmayın.
500 Internal Server Error görürseniz son eklediğiniz satırı kaldırıp yedeği geri yükleyin; sorun sürerse dosyada bozuk karakter, hatalı yönerge veya sunucunun bu yönergeyi kullanmasına izin vermemesi araştırılmalıdır. Dosya hiç etkili değilse önce sunucunun Apache/Apache uyumlu olup olmadığını ve doğru alan adı klasöründe çalıştığınızı doğrulayın.Hangi durumda hangi konum?
Aynı dosyayı farklı konumlara koymak farklı kapsamlar doğurur:
| Konum | Etkilediği alan | Tipik kullanım |
|---|---|---|
public_html/.htaccess | Alan adının ana sitesi ve alt dizinleri | Genel yönlendirme, giriş dosyası ve temel erişim kuralları |
public_html/klasor/.htaccess | İlgili klasör ve alt klasörleri | Tek uygulamaya özel kurallar |
| Yedek dosya | Web kökü dışında tutulmalıdır | Geri dönüş kopyası; herkese indirilebilir .bak dosyası bırakmayın |
Kuralı yalnızca bir uygulamaya uygulamak istiyorsanız dosyayı o uygulamanın klasörüne koymak daha güvenlidir. Buna karşılık tüm alan adını etkileyen bir ayar için web kökündeki dosyayı kullanın. Aynı yönergeyi hem üst hem alt dizindeki dosyalara eklemek yerine tek bir yerde tutun.
Sık yapılan hatalar
- Dosya adını
.htaccess.txtolarak kaydetmek: Bazı editörler uzantıyı otomatik ekler. Dosya adının tam olarak.htaccessolduğunu kontrol edin. - Yanlış klasöre koymak: DirectAdmin hesabının ana dizini ile alan adının
public_htmlklasörü aynı yer olmayabilir. Alan adının atanmış belge kökünü doğrulayın. - Mevcut kuralları silmek: CMS veya uygulama kuralları kaybolursa bağlantılar ve yönetim paneli bozulabilir. Değişiklikten önce kopya alın.
- Apache kuralını Nginx’te beklemek: Nginx-only yapılandırmada
.htaccessokunmaz; kuralı sunucu yöneticisinin Nginx yapılandırmasına uyarlaması gerekir. - Birden fazla değişikliği aynı anda yapmak: Hatanın kaynağı belirsizleşir. Tek değişiklik yapıp siteyi test edin.
Kaynaklar
- DirectAdmin: Web sunucusu türleri
- DirectAdmin: Nginx+Apache
- DirectAdmin: Gerçek document root bilgisi
- Apache: .htaccess
Sık sorulan sorular
DirectAdmin’de .htaccess dosyasını göremiyorsam ne yapmalıyım?
Dosya yöneticisinde gizli dosyaları gösterme seçeneğini açın. Bu seçenek yoksa SFTP veya SSH ile
public_html içeriğini listeleyin. Dosya gerçekten yoksa, uygulama gerçekten gerektiriyorsa mevcut dosyaları ezmeden yeni bir tane oluşturabilirsiniz.Değişiklik ne zaman etkili olur?
Çoğu
.htaccess değişikliği yeni istekte okunur; ayrıca web sunucusunu yeniden başlatmanız gerekmez. Tarayıcı önbelleği veya uygulama önbelleği sonucu gizleyebilir. Testi farklı bir gizli pencerede yapın ve önceki kuralı geri yükleyerek karşılaştırın.