- Konu sahibi
- #1
OpenCart .htaccess dosyası
OpenCart’ta
.htaccess dosyası, Apache sunucusunda SEO dostu URL’lerin çalışmasını ve isteklerin index.php dosyasına yönlendirilmesini sağlar. OpenCart paketinde sürüme göre htaccess.txt veya .htaccess.txt adıyla gelen örnek dosya, mağazanın ana dizininde .htaccess adıyla kullanılmalıdır. Dosya çalışmıyorsa ilk kontrol edilmesi gerekenler dosyanın doğru dizinde olması, Apache’nin mod_rewrite modülünün açık olması ve sunucunun .htaccess kullanımına izin vermesidir.Dosya nereye konur ve nasıl hazırlanır?
OpenCart dosyalarının bulunduğu ana dizini bulun. Bu dizinde
index.php, config.php ve çoğu kurulumda admin klasörü yer alır. kullandığınız sürümün örnek htaccess dosyasını kopyalayıp yeni dosyanın adını yalnızca .htaccess yapın. Dosya adı .htaccess.txt olarak kalırsa Apache bunu kullanmaz.Kurulu sürümün paketindeki tam şablonu kullanın; yalnız birkaç satırlık genel rewrite örneğiyle bütün dosyayı değiştirmeyin. Şablonda RewriteBase satırı varsa kök kurulum için şu biçimi kontrol edebilirsiniz:
Kod:
RewriteBase /
Mağaza
example.com/magaza/ gibi bir alt klasördeyse RewriteBase /magaza/ kullanın. OpenCart sürümünüzün paketinde bulunan htaccess.txt dosyasında ek kurallar varsa onları silmek yerine aynı dosyanın temel alınması daha doğrudur; çünkü sürüme veya eklentilere ait özel yönlendirmeler bulunabilir.Uygulama ve test adımları
- Mevcut çalışan .htaccess dosyasını yedekleyin. Kurulu sürümün paketinden gelen örnek dosyayı esas alın; güncel geliştirme dalının dosyasını eski mağazaya taşımayın.
- Kopyanın adını tam olarak
.htaccessyapın. Linux sunucularda dosya adının başındaki nokta önemlidir. - Dosyada
RewriteBase /satırını mağazanın kurulu olduğu konuma göre düzenleyin. Kök dizin için/, alt klasör için örneğin/magaza/kullanın. - OpenCart yönetim panelinde sürümünüzdeki SEO URL seçeneğini etkinleştirin ve test edeceğiniz ürün/kategori için uygun, çakışmayan SEO anahtarını kaydedin.
- Gizli sekmede bir SEO URL’sini açın. Sayfa açılıyor ve adres çubuğunda
index.php?route=...görünmüyorsa kural çalışıyor demektir. - Yalnız ilgili test URL’sinin önbellekten gelmediğini doğrulayın. Ana sayfa yanında ürün, kategori, mevcut görsel/CSS kaynağı ve yönetim girişini de kontrol edin.
.htaccess içinde desteklenmeyen bir yönerge, yazım hatası veya sunucuda kapalı bir modül ihtimali vardır. Bu durumda geçici olarak son eklediğiniz kuralı kaldırıp Apache hata günlüğünü kontrol edin.Sunucu ayarının etkisi
.htaccess dosyasındaki kuralların okunabilmesi için Apache yapılandırmasında ilgili dizin için override izni verilmelidir. Rewrite kuralları için FileInfo yetkisi gerekir; fakat paket şablonundaki Options, erişim veya başlık yönergelerinin izinleri ayrıca değerlendirilir. Yalnız FileInfo verilmesi tüm şablonun sorunsuz çalışacağını kanıtlamaz. Paylaşımlı hostingde bu ayarı genellikle yalnızca hosting yöneticisi değiştirebilir.Karşılaşılan belirtiye göre kontrol noktası şöyledir:
| Belirti | Muhtemel neden | İlk kontrol | Sonraki adım |
|---|---|---|---|
| SEO URL 404 veriyor | Kural okunmuyor veya yol yanlış | Dosya adı ve ana dizin | RewriteBase ve hosting desteğini kontrol edin |
| 500 Internal Server Error | Sözdizimi veya izin sorunu | Apache hata günlüğü | Son eklenen satırı kaldırıp yeniden deneyin |
| URL’de index.php?route= görünüyor | SEO URL ayarı kapalı veya rewrite devre dışı | OpenCart ayarı ve mod_rewrite | Sunucu yöneticisinden override iznini doğrulatın |
| Ana sayfa çalışıyor, alt sayfalar çalışmıyor | Alt klasör yolu veya mevcut özel kural | RewriteBase ve dosya sırası | Paketin özgün htaccess.txt içeriğini kullanın |
.htaccess dosyasının tek başına OpenCart SEO ayarını etkinleştirmemesidir. OpenCart panel ayarı, Apache modülü ve dosya konumu birlikte doğru olmalıdır.Sık yapılan hatalar
htaccess.txtdosyasını yeniden adlandırmadan kullanmak: Apache’nin varsayılan erişim dosyası adı .htaccess’tir; sunucu bu adı değiştirmişse yöneticinin yapılandırması esas alınır.- Dosyayı
adminklasörüne koymak: Mağazanın genel URL kuralları için dosya genellikleindex.phpdosyasının bulunduğu ana dizinde olmalıdır. - Alt klasör kurulumunda
RewriteBase /bırakmak: Bu, kuralların yanlış yola göre değerlendirilmesine neden olabilir. - Farklı OpenCart sürümlerine ait
.htaccessiçeriklerini rastgele birleştirmek: Eklenti ve sürüm kuralları çakışarak 404 veya 500 hatası oluşturabilir. - Çalışan dosyanın tamamını değiştirmek: Önce yedek alınmalı, yalnızca gerekli satır değiştirilmelidir.
Sık sorulan sorular
.htaccess dosyası görünmüyorsa ne yapmalıyım?
FTP veya dosya yöneticisinde gizli dosyaları gösterme seçeneğini açın. Dosya yine görünmüyorsa, sunucunun dosyayı oluşturmayı engelleyip engellemediğini hosting desteğine sorun.
Nginx kullanıyorsam bu dosya çalışır mı?
Hayır.
.htaccess Apache’ye özgüdür ve Nginx tarafından okunmaz. Nginx kullanılan sunucuda aynı yönlendirme mantığı sunucu yapılandırmasına ayrıca yazılmalıdır.Dosyayı silersem mağaza tamamen kapanır mı?
Ana sayfa ve doğrudan dosya çağrıları çalışabilir; ancak SEO URL’leri bozulabilir. Silmeden önce yedek alın ve değişiklikten sonra ürün, kategori ve yönetim paneli girişini ayrı ayrı test edin.