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.
- 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.