Herhalde milyon tane baslik acilmis ve bu soru cevaplanmistir fakat su an duzenleme yaparken daha dogru bir cozum buldum bu konuya ve sizinle paylasmak istedim.

Web sitenizin adresindeki www'dan kurtulmak icin htaccess'da mod_rewrite'i kullanabilirsiniz. Bircok farkli cozum var fakat icinde domain, hostname degisikligi yapmadan her yerde kullanabileceginiz ve bence en dogru cozum olarak su kodu kullanabilirsiniz:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^.*$ http://%1%{REQUEST_URI} [R=301,L]
Not: otomatik link olustugu icin kod icindeki link ve ikona takilmayin, kodu kopyaladiginizda dogru kopyalanacaktir.
Günümüzde ajax, flash derken client side crossdomain istekler geziyor. Bunun gibi teknolojileri kullanan uygulamalarda sık karşılaştığımız bir sorun var. Mesela flash içinde, javascript dosyalarında veya php yönlendirmelerinde bir sürü yerde yönlendirme kullanıyoruz ve aslında farkında olmadığımız bir kullanımdan dolayı oturum, istek cevaplarının gelmemesi gibi hatalar alıyoruz. Farkında olmadığımız şey şu :

Siz uygulamanızı yazıyorsunuz, flash'da actionscript yazan arkadaş veya sizhttp://www.mfyz.com/kaydet.php gibi bir adrese çağrı yapıyor. Veya bir işlem sonucundahttp://www.mfyz.com/tesekkur.php adresine yönlendiriyor. Diyelim ki uygulamanızda oturuma birşeyler kaydettiniz, cookie yazdınız vs, ve kullanıcıhttp://www.mfyz.com yerinehttp://mfyz.com adresinden girdiği zaman sizin uygulamanızda kaydedilen oturum veya cookie'ler mfyz.com domaini için yazılıyor. Sonra uygulama içindeki yönlendirme www.mfyz.com altında bir dosyaya yönleniyor. Sonuç olarak oradaki kontrollerde "www.mfyz.com" altındaki çerezler ve oturumda değişkenler arandığı için uygulamanız hiç oturum açılmamış gibi çalışıyor.

Bir başka sorun da flash ve ajax istekler için eğer domain uyuşmaz ise tarayıcıların bu istekleri kabul etmeyeceğidir. Ajax'ta DOM hataları alırsınız (eğer firebug kullnıyorsanız görürsünüz), eğer flash'tan istek yaparsanız cevap alamazsınız çünkü flash önce o domain altındaki crossdomain.xml dosyasından sizin o domaine erişiminiz olup olmadığını denetler. Eğer bu tanımı yapmadıysanız uygulamanız çalışmaz.
Aslında www.mfyz.com ile mfyz.com aynı domain ve siteler olmasına rağmen xss gibi güvenlik nedenleri için tarayıcılar tarafından engellenmektedir.

Çözüm, giren kullanıcınızı tek yerde gezdirmektir. Yani önce sitenizi www'lu mu yoksa www'suz mu kullanacağınıza karar verip gelen ziyaretçiyi eğer www'lu ise veya www'suz ise doğru olan yere yönlendirmektir. Ziyaretçi açısından birşey değişmez, hatta hissetmez bile, ama siz uygulama geliştirirken belki haftalarca hatanın kaynağını çözemeyeceğiniz bir problemle uğraşıyor olabilirsiniz.

PHP ile bu yönlendirmeyi yapmak için aşağıdaki kodu kullanabilirsiniz.
// subdomain redirection
if( substr($_SERVER[HTTP_HOST], 0, 3) != 'www' ){
	die('<script type="text/javascript" charset="utf-8"> window.top.location = "http://www.mfyz.com'. $_SERVER[REQUEST_URI] .'"; </script>');
}
Bu kodhttp://mfyz.com şeklinde gelen kullanıcıyıhttp://www.mfyz.com altındaki gideceği yere yönlendirir. Yani site her zaman www'lu çalışır. Bunun tersini yani www'suz çalışmak istiyorsanız (mfyz.com'da olduğu gibi) aşağıdaki versiyonu kullanabilirsiniz.
// subdomain redirection
if( substr($_SERVER[HTTP_HOST], 0, 3) == 'www' ){
	die('<script type="text/javascript" charset="utf-8"> window.top.location = "http://mfyz.com'. $_SERVER[REQUEST_URI] .'"; </script>');
}
Bu teknik aynı zamanda domain'in markalaşması konusunda da psikolojik açıdan bir alışkanlık oluşturma konusundaki ince bir detaydır.

Hazırlayan : Mehmet Fatih YILDIZ
Sitenizdehttp://www.mfyz.com veyahttp://mfyz.com şeklinde giren kullanıcıların farkını biliyor musunuz? Ya da insanlar nasıl bir alışkanlık ile böyle giriyorlar hiç farkına vardınız mı?

PHP geliştiricileri için : ufak bir kod ile bu yönlendirmeyi yapabileceğinizi biliyor muydunuz?
// subdomain redirection
if( substr($_SERVER[HTTP_HOST], 0, 3) != 'www' ){
	die('<script type="text/javascript" charset="utf-8"> window.top.location = "http://www.mfyz.com'. $_SERVER[REQUEST_URI] .'"; </script>');
}
Bu kod, mfyz.com'a www'suz giren yanihttp://mfyz.com şeklinde giren kullanıcılarıhttp://www.mfyz.com şeklinde gitmek istedikleri URL'e yönlendirecektir.

"Bu ayrımdan dolayı oluşan problemler ve ikisinin ayrımı" konusunda daha detaylı bilgi için döküman'dan devam ediniz.

Popüler Etiketler

ubuntu workspace wireless share mysql sql optimizasyon analyse procedure twitter calendar social media tool jquery javascript textarea cookie subdomain optimization kontrol yapıları if while portfolio pear mdb2 db database mssql pgsql url icon ikon grafik download html css xhtml rss spam lifestream mfyz proje startups music macosx apple osx player license mail signature imza applications free tebrik parse xml örnek kod facebook connect api box iphone ipad mootools ipucu web app php open source regex windows firefox zaman oyun banner logo ide editor phpstorm jetbrains deployment version control svn git less blog js plugin apache kurulum iOS htaccess html5 mobile browsers table coding ios gimp howto nasıl wanda digital app store store in-app purchase purchase subscription verification storekit itunes connect itunes widget developer generator ui ux css3 icons support cache wordpress cms ie internet explorer search google nedir server chart form radio style newsletter network app ajax laptop notebook compile object export route router mod_rewrite internet code development http linux konsol login lisans session language sitemap seo bootstrap date tarih dokuman istatistik sosyal medya ruffles doritos service meta opengraph graph diff fql kampanya tytz integration kitap design statistics www redirect crossdomain prepare execute injection browser switch compiler on-the-fly screen terminal pharma hack input auth job query insanlar webkit ntfs fstab subversion ingilizce xmlhttprequest select framework assets link button