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.


Yorum Gönder