Windows Hosting Plesk 301 redirect ve .htaccess


Projelerimi yayınlamak için birçok insan gibi hosting hizmeti alıyorum. Bu hizmeti aldığım için çoğu zaman Plesk paneli ile haşır neşir oluyorum. MVC kullanarak yeni yaptığım bir site için yine hosting hizmetinden faydalandım. Sonrasında seo analizi eden sitelerden kontroller yaptım.

Kontrol sonucunda bir madde ilgimi çekti. Arama motorlarına göre bir siteye farklı url’lerden gidiş o sitenin pagerank’ını düşürüyormuş. Yani http://illeryollar.com ile http://www.illeryollar.com aynı site de olsa iki farklı bağlantı üzerinden gidildiği için puanı ikiye bölünüyormuş. Bu tavsiye edilmeyen (www , non-www problem) durum için sitenin bağlantısı bir tane olmalıymış.

Bunun üzerine yaptığım araştırmalarda 301 redirect (ana yönlendirme) işlemi karşıma çıktı. Paylaşımlı olmayan sadece size ait sunucularda Windows için IIS ayarlarına direkt olarak girip değişikliği yapabilirsiniz. Ama bir de işin paylaşımlı sunucuları yani hosting firmalarından aldığınız hizmetler kısmı var.

Plesk .htaccess file
Paylaşımlı Windows (IIS) sunucuları için kullandığınız dosya sisteminde plesk panel aracılığıyla veya kendi bilgisayarınızda “.htaccess” isimli bir dosya yaratıp içeriğini belirleyeceğiniz şartlara göre aşağıdaki şekilde değiştirmeniz yeterli olacaktır. Tabi lokalde oluşturduğunuz dosyayı ftp aracılığıyla httpdocs klasörü altına koymanız gerekecektir.
  • www ‘den non-www’ ye geçiş

    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
  • non-www ‘den www’ ye geçiş 
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^alanadi.com
    RewriteRule (.*) http://www.alanadi.com/$1 [R=301,L]
Bir problem de siteniz .NET4.0 ve MVC kullandığınızda ortaya çıkacaktır. Yukarıdaki tanımlamaları yaptıktan sonra non-www yani;
http://illeryollar.com adresini girdiğinizde  http://www.illeryollar.com/eurl.axd/8121c3c142fb74458da916ba07caaf17/

şeklinde saçma sapan uzantısı olan bir bağlantı ile siteniz sorunsuz şekilde gelecektir. Bu hatayı da bertaraf etmek için aşağıdaki .htaccess dosyasına yukarıdaki seçenekler yerine aşağıdakileri yazarak kaydediyoruz.
  • eurl.axd/ hatası için www ‘den non-www’ ye geçiş

    RewriteCond %{HTTPS} (on)? 
    RewriteCond %{HTTP:Host} ^www\.(.+)$ [NC] 
    RewriteCond %{REQUEST_URI} (.+)? 
    RewriteRule ^(.*)(eurl.axd/.*)$ http(?%1s)://%2/$1 [R=301,L]
  • eurl.axd/ hatası için non-www ‘den www’ ye geçiş

    RewriteCond %{HTTPS} (on)? 
    RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC] 
    RewriteCond %{REQUEST_URI} (.+)? 
    RewriteRule ^(.*)(eurl.axd/.*)$ http(?%1s)://www\.%2/$1 [R=301,L]

Dilerseniz tüm değişimler http://www.htaccessredirect.net/ adresinden dosya içeriğini oluşturarak da yapabilirsiniz.


Türkiye'nin bölgeleri, illeri ve iller arası mesafeleri...

Uzun zamandır kafamı kurcalayan konulardan birisiydi MVC. Çalıştığım uygulamalarda hiç MVC ile uğraşmamıştım ve görünen o ki (elimde işin eski oluşu nedeniyle) uzun bir süre daha MVC konusuna iş yerinde giremeyecektim.

Bir de aklımda android uygulaması olarak hazırladığım iller yollar projesinden kalma bunu nasıl web ortamına taşırım işi vardı. Doğal olarak tembel bir developer'ın aklında bir çok plan proje vardır. Eskiden büyük düşünceler olsa hayata geçmedikçe projeler küçüldü. Bence iyi oldu aslında. Neyse bunu başka bir başlık altında konuşuruz.

Bu iki düşünce bir araya gelince MVC kullanarak illeryollar için bir web sitesi hazırlamak için kolları sıvadım. Şimdilerde yayına giren sitede aşağıda ismi geçen teknolojileri kullanmaya çalıştım.

  • Asp.NET MVC3 Razor syntax
  • Nhibernate 3.3
  • SQLite veritabanı
Öncelikle şunu söylemeliyim ki MVC gayet anlaşılır ve kolay uygulanabilen bir yapı olmuş. Razor sentaksına ise hemen alışabiliyorsunuz. Gözünüz korkmasın ve kesinlikle bu işlere bir yerden girin. Şu anda iş ilanlarına bakarsanız MVC uygulaması yazma şartı aranır oldu.

"MVC bana ne kattı?" veya "MVC nin bana getirisi ne?" diye soracak olursak öncelikle geliştirme zamanını kısalttı ve kodun anlaşılabilirliğini artırdı. Her zaman bahsedilen katmanlı yapı konsepti kendiliğinden hazır olarak geldiği için hemen adapte olabiliyorsunuz. İkinci olarak artık seo için olmazsa olmaz url rewrite özelliğini framework katmanında atlayıp zıplamadan elde etmiş bulunuyorsunuz. Örnek vermek gerekirse

/iller.aspx?id=61&name=trabzon şeklinde parametrik ifade yerine /iller/detay/trabzon ifadesi hemen gören göz için hem de arama motorları için daha çekici oluyor. Günümüz seo tekniklerinde de bu şekilde kullanılması tavsiye ediliyor. Ha diğer şekilde arama motorları indekslemiyor, tanımıyor mu? Elbetteki tanıyıp indeksliyor ama güncel gelişmeleri de takip etmek gerekir.

illeryollar.com ana sayfa

Velhasıl bu teknolojileri kullanarak illeryollar.com 'u hayata geçirdim. Bundan sonrası ekstra geliştirmeleri nasıl yaparım, için içindeki verileri nasıl zenginleştiririm onu düşünürüm artık.

Bu arada veriler derken veri saklama sqlite veritabanını kullandım. Dosya tabanlı küçücük bir veritabanı da olsa özellikle mobil cihazlarla birlikte popülerliği artmıştır. Veri yoğunluğunun aşırı olmadığı çok fazla bağlantı açılmayacak uygulamalar için özellikle de nhibernate ile etkileişimi kolaylıkla yapılabildiğinden tercih edebilirsiniz.

Blog işine başlıyoruz

Bugün pek işim yoktu. Son zamanda olduğu gibi geç kalmışlığın verdiği hevesle bir de blog işine gireyim dedim ve ufak bir araştırmadan sonra blogger ile blog hesabımı oluşturmuş oldum.