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.


Yorum Gönder