Konular

htaccess ile Mobil Ziyaretçilerin Mobil Sürüme Yönlendirilmesi

Akıllı telefonların ve tabletlerin yaygınlaşması ile internetin mobil kullanımı büyük oranda arttı. İleride desktop ve laptopları tamamen bırakır mıyız bilmem ama mobil kullanımın giderek daha da artacağı aşikar gibi görünüyor.

htaccess ile Mobil Ziyaretçilerin Mobil Sürüme Yönlendirilmesi

Durum böyle olunca da artık hemen hemen her web sitesinin bir de mobil sürümü bulunuyor ve mobil cihazlardan gelen site görüntüleme istekleri user agent bilgisinden tespit edilerek otomatik olarak mobil sürüme yönlendiriliyor.

Bu yönlendirme işlemini yapmak için kullanılabilecek yöntemlerden pratik birisi de ’nin özelliği’ni kullanmak ve . içinde yönlendirme kuralları tanımlamaktır.

Yazının devamında çeşitli koşullara göre nasıl yönlendirme yapılabileceği ile ilgili detaylara değineceğim, ilginizi çekerse göz atmak isteyebilirsiniz.

Gereksinimler

Yönlendirme işlemlerini yapabilmek için öncelikli olarak ’nin modülü devrede olması ve AllowOverride direktifinin “All” ya da en azından “Fileinfo” olarak set edilmiş olması gerekiyor. Bu işlemlerin nasıl yapılacağı ile ilgili olarak daha önce yayınladığım “htaccess ile Bakım Sayfasına Yönlendirme” isimli yazının “” ve “AllowOverride Direktifi” isimli alt başlıklarına bakabilirsiniz.

 

Mobil Sürüme Yönlendirme İşlemi

Yönlendirme işlemleri için birden fazla senaryo olabilir; örnek olarak sitenin mobil sürümü, ilgili sitenin kök dizinide bulunan bir alt dizinden yayınlanıyorsa farklı; bir subdomain vasatısı ile ayrı bir VirtualHost altından yayınlanıyorsa farklı rewrite kuralı kullanılmalıdır.

 

Bu iki senaryo için tanımlamalar aşağıda anlatıldığı gibi olabilir:

 

 

Mobil Sürüm Altdizindeyse

Örnek olarak, sitenin mobil sürümü ilgili sitenin ana dizininde /mobile isimli klasörde duruyorsa ana dizinde bulunan . dosyasına şöyle bir giriş yapılabilir:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/mobile.*$
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ /mobile%{REQUEST_URI} [L,R=302]

Böylece, user agent kısmında android, blackberry, iphone, vs. ibareleri geçen sayfa görüntüleme istekleri /mobile alt dizinine yönlendirilecektir.

Örneğin istek, http://www.syslogs.org/deneme url’sine gelmekteyse kullanıcı, http://www.syslogs.org/mobile/deneme adresine yönlendirilecektir. Ayrıca isteğin sürekli yönlendirilerek sonsuz döngüye girmemesi için yönlendirme, istenilen URL’de /mobile ibaresi geçmemesi durumunda yapılacaktır.

 

Mobil Sürüm Subdomain Altındaysa

Mobil sürümün örnek olarak “m.syslogs.org” gibi bir sub domaini varsa ve ayrı bir VirtualHost tanımlaması ile yayınlanıyorsa, normal sürümün kök dizininde bulunan . dosyasında aşağıdaki tanımlamalar girilebilir:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ http://m.syslogs.org%{REQUEST_URI} [L,R=302]

Bu şekilde de user agent kısmında ilgili mobil cihazlara ait ibareler geçen istekler, http://m.syslogs.org/url adresine yönlendirilecektir.

Bu yönlendirme işlemlerinin yanı sıra, mobil sürüme yönlendirilmiş kullanıcılara normal sürümü görüntüleme şansı vermek de isteyebilirsiniz. Ancak yukarıdaki şekilde yapılan yönlendirmelerde ilgili mobil cihazlardan gelen istekler başka herhangi bir koşula bakılmaksızın mobil sürüme yönlendirildiklerinden dolayı bu şekliyle normal sürüme erişemezler. Bu problemi aşmak aşağıdaki gibi bir yöntem izlenebilir:

 

Geri Yönlendirme İşlemi

Mobil bir cihazdan sitenin mobil sürümüne erişmiş olan bir kullanıcıya aynı zamanda normal sürüme de erişebilme şansı vermek için izlenebilecek yöntemlerden birisi, mobil sürümden normal sürüme giden bir redirect linki vasıtası ile kullanıcıya bir cookie atamak ve .htaccess kuralında bu cookie’yi kontrol etmek olabilir. Bu işlemi aşağıdaki şekillerde yapabilirsiniz.

 

Altdizin

Örneğin sitenin http://www.syslogs.org olduğunu ve mobil sürümünün /mobile isimli bir altdizinden yayınlandığını düşünürsek, sitenin kök dizini altında oluşturulacak redirect.php isimli bir php dosyasına, hem normal sürüme redirect işlemini yapmak hem de mobil sürümden normal sürüme geri gidildiğini anlamak üzere kullanıcıya bir cookie set edilmesini belirtmek için şu ibrareler girebiliriz:

<?php
header('Location: http://www.syslogs.org/');
setcookie('normalsurum', '1');
?>

  Daha sonra mobil sürümün anasayfasından bu php dosyasına örnek olarak “Normal sürüme dönmek için tıklayınız” başlıklı bir link verebilir ve kök dizininde bulunan .htaccess dosyasına şu şekilde bir yönlendirme kuralı yazılabilir: 

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/mobile.*$
RewriteCond %{REQUEST_URI} !^/redirect.php
RewriteCond %{HTTP_COOKIE} !normalsurum=1
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ /mobile%{REQUEST_URI} [L,R=302]

  Böylece mobil sürümde bulunan redirect linkine tıklayan kullanıcılar hem normal sürüme yönlendirilecek hem de adı normalsurum ve değeri 1 olan bir cookie atanacaktır. Normal sürüm altında bulunan .htaccess dosyası da kullanıcıda normalsurum isimli cookie’yi kontrol edip değeri 1 ise bu mobil kullanıcının normal sürüme gitmesine izin verecektir.

 

Subdomain

Aynı işlemim subdomain versiyonu ise şu şekilde gerçekleştirilebilir: (Sitenin www.syslogs.org olduğunu ve mobile sürümün m.syslogs.org isimli subdomain’den yayınlandığını varsayıyoruz.)

Gene normal sürümün kök dizininde redirect.php isimli bir php dosyası oluşturup aşağıdaki redirection ve cookieset ibarelerini giriyoruz:

<?php
header('Location: http://www.syslogs.org/');
setcookie('normalsurum', '1');
?>

  Sonrasında kök dizininde bulunan .htaccess dosyasına aşağıdaki rewrite kuralını giriyoruz:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/redirect.php
RewriteCond %{HTTP_COOKIE} !normalsurum=1
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ http://m.syslogs.org%{REQUEST_URI} [L,R=302]

Sonrasında da mobil sürümün anasayfasında bu oluşturulan php dosyasına link veriyoruz. Böylece normal sürüme gitmek isteyen mobil kullanıcılar bu linke tıklayabiliyor ve kendilerine bir cookie set ediliyor, rewrite kuralında da bu cookie göz edildiği için normal sürüme erişim izni verilmiş oluyor.

Kaynak

 

 

Yorumunuzu Ekleyin

Apache Nedir?

Apache, GNU lisanslı yani açık kaynak kodlu, güçlü, sağlam, yetenekli ve esnek bir http (web) sunucusudur.

31,225 Okunma Henüz yorum yapılmamış 04/10/2011 09:52:34 19/09/2014 09:52:59

Permalink Yapımı Php Mod_rewrite Kullanımı 2

This article will lead you through rewrite rules, regular expressions, and rewrite conditions, and provide a great list of examples.

20,156 Okunma Henüz yorum yapılmamış 09/08/2009 03:41:56

Temel Apache Konfigurasyonu

Bu bolumde, basit yapiya sahip bir apache web sunucusunu yonetmeyi,gerekli temel ayarlamalari yapmayi ogrenecegiz. Tum ayarlamalari www. Turk-php. Com alan adina gore yapacagiz. Bu nedenle kendi alan adinizi kullanirken herhangi bir problemle karsilasmadan, ayarlari kendinize uygun hale getirebileceksiniz

19,562 Okunma Henüz yorum yapılmamış 26/06/2007 00:52:04

Permalink Yapımı Php Mod_rewrite Kullanımı

Kullancağımız modül bkz. Mod_rewrite. Önceliklewww. Harmankaya. Org/goster. Php?id=5 gibi bir linki www. Harmankaya. Org/goster-3-yazi-basligi. Html gibi kafamdan bir örnek buluyorum ve başlıyorum. İlk işimiz . Htaccess dosyası kullanarak . Php dosyayı html olarak yorumlamayı göreceğiz bunun için /root altındaki . Htacces dosyasına ekleyeceğimiz kod

19,343 Okunma Henüz yorum yapılmamış 24/09/2008 05:47:20

Yönlendirme

İngilizce Redirectionslarla ilgili bir makale

18,569 Okunma Henüz yorum yapılmamış 15/08/2007 22:04:38

httpd.confApache HTTP Sunucusu Ayar Dosyası

Bu dosyada Apache, httpd, ana sunucu birbirine eş anlamda kullanılmıştır.Kullanılan Türkçe terimlerin yanlarında, ilk sefere özel olarak İngilizce karşılıkları da verilmiştir. Ancak, Symbolic link, PID, Unix sistem çağrıları gibi temel kavramlar olduğu gibi bırakılmıştır.

17,838 Okunma 1 Yorum 26/06/2007 21:48:57 18/01/2015 20:40:22

Apache Konfigürasyonunuzu Güvenli Hale Getirmenin 20 Yolu

Peter Freitag'in apache konfigürasyonunda yapılacak bazı düzenlemeler hakkındaki, Apache Security kitabından da alıntılar içeren önerileri. Not: Önerilerin bir garantisi yoktur. Sunucunuzu daha sıkı yapacaktır fakat bütün önerileri yaptıktan sonra sunucunuz %100 güvenli olacak diye bir garanti yok. Ayrıca önerilerin bazıları sizin ortamınızda performansı düşürebilir veya problemlere yol açabilir. Önerilen değişikliklerin ortamınıza uyup uymayacağına karar vermek size kalıyor.

16,943 Okunma Henüz yorum yapılmamış 26/06/2007 21:38:07 07/12/2014 23:16:16

.htaccess

Htaccess'in nerelerde kullanılabileceği hakkında hoş bir ingilizce makale

16,908 Okunma Henüz yorum yapılmamış 15/08/2007 21:57:19 18/01/2015 20:31:50

Otomatik Subdomain Yaratma

Herşeyden önce apache sunucusuna yönelik anlatacağım. Önümüzde 2 yol var: biri . Htaccess, evet şu ünlü htaccess hep kaçtığınız ama artık tamam pes dediğiniz olay; diğeri ise php. (cUrl gibi alternatifler de var ama benim bilgim dahilinde değil)…

16,605 Okunma 1 Yorum 14/08/2007 02:10:08

Apache 2.x Kurulumu

Apache 2.x 'in Windows 7 üzerine kurulumu

16,364 Okunma Henüz yorum yapılmamış 24/10/2011 10:22:24

htaccess kullanımı

Htaccess; web alanında birçok faydalı yönlendirme işlerininyapılmasını sağlayan, Apache web sunucularında olan etkili ve çok amaçlı bir ayar dosyasıdır.

15,344 Okunma Henüz yorum yapılmamış 13/10/2013 09:47:19 18/01/2015 20:31:43

Otomatik Sub Domain Oluşturma

Wildcard DNS host servisiniz tarafından aktif edilmiş olmalıdır. Wildcard DNS *.alanadiniz.com şeklindeki bir altdomaindir ve bu domain site IP nize yönlendirilmiş olmalıdır.

14,272 Okunma 1 Yorum 24/11/2013 10:07:15 19/09/2014 10:09:00

Apache Yönergeleri

Apache konfigrasyon dosyaları için gerekli yönergeler

7,936 Okunma Henüz yorum yapılmamış 07/12/2014 23:24:44 18/01/2015 20:28:01

Yükleniyor...