Blog / Çalışmalar

Siteniz için .htaccess ile link yapıları oluşturun

Bu yazı 2020 yılından. Anlatılan sürümler, fiyatlar ve adresler o günden bu yana değişmiş olabilir.

Kendi sitemde de kullandığım, dosyaların gerçek yollarını gizleyip onlara temiz ve kısa adreslerle erişmenizi sağlayan güzel bir yöntemden bahsedeceğim. Hem bu sayede adres çubuğunda daha hoş, akılda kalıcı linkleriniz olur hem de dosyalarınızın klasör yapısını dışarıya göstermemiş olursunuz.

İşin sırrı .htaccess dosyasında. .htaccess, Apache web sunucusunun o klasör için okuduğu bir ayar dosyasıdır. İçine yazdığınız RewriteRule kuralları sayesinde, ziyaretçi bir adrese gittiğinde Apache onu perde arkasında başka bir dosyaya yönlendirir; ziyaretçi bunu fark etmez, adres çubuğunda yazdığı kısa adresi görmeye devam eder.

Çalışması için gerekenler

Bu yöntem Apache sunucularda çalışır. Sitenizi Apache ile yayınlıyorsanız genelde hazırdır; sadece mod_rewrite modülünün açık ve o klasörde .htaccess kullanımına izin verildiğinden (AllowOverride All) emin olun. Nginx kullanıyorsanız .htaccess çalışmaz, orada aynı işi sunucu ayar dosyasındaki location ve rewrite kurallarıyla yaparsınız.

Benim kullandığım yapı

Sitenin kök dizinine bir .htaccess dosyası oluşturup içine şunları yazıyorum:

Kod
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^tumu$ index.php [L]
RewriteRule ^stil$ css/stil.css [L]
RewriteRule ^favicon$ img/favicon.png [L]
RewriteRule ^kodlar$ js/alifurkan.js [L]
RewriteRule ^alifurkan$ afy/alifurkan.jpg [L]
RewriteRule ^logo$ afy/logo.png [L]

Bu kuralları sırayla açıklayayım:

  • İlk üç satır siteye http (80 portu) ile gelen herkesi https'e yönlendirir. Yani biri http:// ile girse bile otomatik olarak güvenli https:// adresine geçer. R=301 kalıcı yönlendirme demek, arama motorları da bunu öğrenir.
  • RewriteBase / kuralların sitenin kök dizinine göre çalışacağını söyler.
  • Geri kalan satırlar asıl işi yapan kısım. Örneğin RewriteRule ^stil$ css/stil.css [L] satırı sayesinde ziyaretçi siteniz.com/stil adresine gittiğinde aslında css/stil.css dosyasını görür. Sol taraftaki (^stil$) ziyaretçinin yazdığı kısa adres, sağ taraftaki (css/stil.css) ise dosyanın gerçek yoludur. Sondaki [L] "bu kural eşleşince dur, aşağıdakilere bakma" demek.

Dosya uzantısı fark etmez; php, css, js, jpg, ico, aklınıza gelen her dosyayı bu şekilde kısa bir adrese bağlayabilirsiniz. Kendi sitenizde sol taraftaki isimleri ve sağ taraftaki yolları kendi dosyalarınıza göre değiştirmeniz yeterli.

Bu yönlendirme sayesinde siteniz.com/stil adresine giderek stil dosyanıza, siteniz.com/logo adresine giderek logonuza ulaşabilirsiniz. Kodlarınızda da bu kısa adresleri kullanarak dosya yapınızı meraklı gözlerden gizlemiş olursunuz.

Küçük bir uyarı: Bu yöntem dosyaların yolunu gizler ama onları şifrelemez; herkese açık olmaması gereken dosyaları (ayar dosyaları, veritabanı bilgileri gibi) bu yöntemle "gizlemeye" çalışmayın, onları web klasörünün tamamen dışında tutun.

Bu yazıyı paylaşXFacebook