Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Mobil Tarayıcıdan Mobile - Normal Tarayıcıdan Normal Siteye Yönlendirme

Konu, 'PHP' kısmında Mustafa Sahin tarafından paylaşıldı.

  1. Mustafa Sahin

    Mustafa Sahin Yeni Üye

    Kayıt:
    30 Mayıs 2014
    Mesajlar:
    2
    Beğenilen Mesajlar:
    0
    Merhaba,

    Uzun zamandır arıyorum, araştırıyorum, soruyorum cevabı bulamıyorum.

    Buraya üye oldum arkadaşlar yardımcı olur diye.

    Sorum şöyle;

    Bir normal site birde mobil versiyon var.

    Telefondan, tablet vs.. girildiğinde http://m.ornek.com daki index.php sayfasını açıyor.
    (google mobilizer.php kullandım)

    Normal PC'den örnek: Chrome dan girildiğinde http://www.ornek.com index.php sayfasını açıyor.

    Buraya kadar her şey tamam.

    Benim istediğim. Masaüstü PC'den yani normal tarayıcıdan http://m.ornek.com mobil adresine girildiğinde gitsin normal siteyi açsın.
    Hata versin, yönlendirme olsun, hiç bir şey olmasa bile 404 sayfasını açsın yok bulamıyorum.
    Kısır döngü oluyor. Loop'a giriyor bir yolu yok mu?
    htaccess dosyasında hiç bir yönlendirme yok.
    Sadece normal sitenin index.php sayfasında mobile yönlendirme kodu var.

    Teşekkürler,
     
  2. fotogunes

    fotogunes Aktif Üye

    Kayıt:
    11 Temmuz 2005
    Mesajlar:
    284
    Beğenilen Mesajlar:
    2
    session ya da cookie kullan, önce cihazı tanı, session ya da cookie ye kaydet, sonra user diğer versiyona geçmek istiyorsa unset session yapıp yeni session ya da cookie yi isteğe göre tekrar oluştur.
     
  3. Mustafa Sahin

    Mustafa Sahin Yeni Üye

    Kayıt:
    30 Mayıs 2014
    Mesajlar:
    2
    Beğenilen Mesajlar:
    0
    Verdiginiz bilgiler için tesekkürler. PC den normal sayfa mobil cihazlardan mobil sayfaya ve PC den mobil sayfaya girildiginde yine normal sayfa gidiyor.
    Sonunda sorunu bu sekilde çözebildim:

    www.website.com index.php içerisine;

    PHP:
    <?php
    include("Mobile_Detect.php");
    $Tarayici = new Mobile_Detect();
    if(
    $Tarayici->isMobile()==TRUE or $Tarayici->isTablet()==TRUE){
    echo 
    "<meta http-equiv=\"refresh\" content=\"0;URL=http://m.website.com\">";
    exit;
    }
    ?>
    m.website.com index.php içerisine de;

    PHP:
    <?php
    $useragent
    =$_SERVER['HTTP_USER_AGENT'];
    if(
    preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
    header('Location: ');
    else 
    header('Location: http://www.website.com');
    ?>
     
  4. knn26

    knn26 Yeni Üye

    Kayıt:
    12 Ekim 2014
    Mesajlar:
    1
    Beğenilen Mesajlar:
    0
    mobilden normal siteye girmek isteyenler için tam sürüme link vermek istiyorum nasıl yapabilirim
     
  5. 53cc

    53cc Üye

    Kayıt:
    22 Mayıs 2014
    Mesajlar:
    28
    Beğenilen Mesajlar:
    0
    Responsive design bu işin çözümüdür. :rolleyes:

    GT-I8190 cihazımdan Tapatalk 2 ile gönderildi
     
  6. birNC

    birNC Yeni Üye

    Kayıt:
    21 Şubat 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Tasarım
    Şehir:
    İstanbul
    Merhaba,

    Bir şey sormak istiyorum bu konuya mukabil.
    birnc.com.tr'ye mobilden girildiğinde m.birnc.com.tr'ye gidiyor bütün kategorilerde mobilde sorun yok ancak sitemize yüklediğimiz herhangi bir makalenin içindeki herhangi bir linke tıkladığımızda mobil siteden tekrar birnc.com.tr'deki makaleye gidiyor.

    Örnek:
    http://m.birnc.com.tr/web_tasarim/we...trafik-analizi linkini tıklayınız, sonunda bulunan Domain Uzantıları makale linkine tıkladığımızda tekrar https://www.birnc.com.tr/web_tasarim/domain-uzantilarimobil site yerine birnc.com.tr'ye geçiyor?

    Bunun sebebi ne olabilir, bilgi alabilir miyim? Sizin aşağıdaki verdiğiniz kodu ana dizinde htaccess'e ekliyorum çalışıyor linkler düzeliyor ancak bu kezde mobil sitedeki makalelerdeki resimler, ikonlar slider resimleri vb. şeylerde sorun oluyor çarpı işareti çıkıyor.

    Bunun sebebi ne olabilir, nasıl düzeltebiliriz, bilginiz var mıdır?
     
  7. destek

    destek Üye

    Kayıt:
    5 Kasım 2006
    Mesajlar:
    123
    Beğenilen Mesajlar:
    11
    Merhaba ilgili sayfada bağlantı normal url üzerinden verildiği için o sayfaya geçmesi normal linki http://m.birnc.com.tr/web_tasarim/domain-uzantilari olarak güncellerseniz sorun kalmayacaktır. Mobil dizindeki tüm linkler m. sub domain şeklinde linklenmesi gerekiyor.
     
    birNC bunu beğendi.
  8. birNC

    birNC Yeni Üye

    Kayıt:
    21 Şubat 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Tasarım
    Şehir:
    İstanbul
    Teşekkür ederim bilgi için ancak mobilde tıklanan tüm linkler otomatik olarak mobilden giren için mobile dönüyordu SSL yüklendikten sonra bu sorunu yaşamaya başladık sanırım. Yani mobildeki linklerin kullanıcıyı mevcut sayfamıza göndermesi sorununu.

    Bunun için bir kod vardı ancak onu bulamıyorum.

    Mesela aşağıdaki kod'la dediğim işlemi yapıyorum linkler m.birnc.com.tr ilgili link oluyor ancak bu kezde slider resimlerinde, makale resimlerinde falan sorunlar çıkıyor çarpı işareti gibi. Bunun nedenini bulamıyorum bu kezde...

    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]
     
  9. birNC

    birNC Yeni Üye

    Kayıt:
    21 Şubat 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Tasarım
    Şehir:
    İstanbul
    Mesela ek olarak şunu da belirtmek istiyorum..

    Mesela birnc.com.tr’ye mobil üzerinden Facebook’tan Twiter’dan girdiğimizde m.birnc.com.tr’ye gitmesi gerekirken mobil sitemize gitmiyor.
     
  10. destek

    destek Üye

    Kayıt:
    5 Kasım 2006
    Mesajlar:
    123
    Beğenilen Mesajlar:
    11
    Tavsiyem http://mobiledetect.net/ kullanarak bu işi sorunsuz çözmen yönünde sadece htaccess ile sıkıntı çıkması normal. Sitesinden son sürümünü indirip entegre etmen yeterli olacaktır.

    PHP:
    // Include and instantiate the class.
    require_once 'Mobile_Detect.php';
    $detect = new Mobile_Detect;
    // Any mobile device (phones or tablets).
    if ( $detect->isMobile() ) {
    }
    // Any tablet device.
    if( $detect->isTablet() ){
    }
    // Exclude tablets.
    if( $detect->isMobile() && !$detect->isTablet() ){
    }
    // Check for a specific platform with the help of the magic methods:
    if( $detect->isiOS() ){
    }
    if( 
    $detect->isAndroidOS() ){
    }
    // Alternative method is() for checking specific properties.
    // WARNING: this method is in BETA, some keyword properties will change in the future.
    $detect->is('Chrome')
    $detect->is('iOS')
    $detect->is('UC Browser')
    // [...]
    // Batch mode using setUserAgent():
    $userAgents = array(
    'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19',
    'BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103',
    // [...]
    );
    foreach(
    $userAgents as $userAgent){
      
    $detect->setUserAgent($userAgent);
      
    $isMobile $detect->isMobile();
      
    $isTablet $detect->isTablet();
      
    // Use the force however you want.
    }
    // Get the version() of components.
    // WARNING: this method is in BETA, some keyword properties will change in the future.
    $detect->version('iPad'); // 4.3 (float)
    $detect->version('iPhone'// 3.1 (float)
    $detect->version('Android'); // 2.1 (float)
    $detect->version('Opera Mini'); // 5.0 (float)
    // [...]
     
  11. birNC

    birNC Yeni Üye

    Kayıt:
    21 Şubat 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Tasarım
    Şehir:
    İstanbul
    Teşekkürler bilgi için bunu da denedim, başka bir forumda belirtmişlerdi, bunu denedim bu kez de Server hatası verdi. Belki de biz yanlış yapıyoruz, bu PHP kodu ve yapılması gerekenlerle ilgili bilginiz varsa sırasıyla iletebilir misiniz?

     
  12. destek

    destek Üye

    Kayıt:
    5 Kasım 2006
    Mesajlar:
    123
    Beğenilen Mesajlar:
    11
    PHP bilginiz yoksa üstteki yapıyı entegre etmek zor olacaktır sizin için. Alt kısımdaki kodları normal sitede en üstte yer alacak şekilde tüm sayfalara yerleştirirseniz mobil gelenleri mobil sayfanıza yönlendirecektir.

    PHP:
    $useragent=$_SERVER['HTTP_USER_AGENT'];

    if(
    preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))

    header('Location: http://m.siteadi.com');
     
  13. birNC

    birNC Yeni Üye

    Kayıt:
    21 Şubat 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Tasarım
    Şehir:
    İstanbul
    Merhaba,

    Mesela nereye kök dizininde htaccess'e mi, index.php'ye mi wiews klasöründe template.php'ye mi?

     
  14. destek

    destek Üye

    Kayıt:
    5 Kasım 2006
    Mesajlar:
    123
    Beğenilen Mesajlar:
    11
    Merhaba, tüm dosyalara include edilen bir header.php varsa oraya ekleyebilirsiniz. Önemli olan normal sayfaların hepsinde olması index.phpde deneyin öncelikle. Daha sonra tüm dosyalara uygularsınız.
     
  15. birNC

    birNC Yeni Üye

    Kayıt:
    21 Şubat 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Tasarım
    Şehir:
    İstanbul
    Merhaba,

    Tüm hepsini denedim hata veriyor, şu bilgiyi de aktarayım. Bu yapmak istediğimiz sistem SSL alana kadar zaten sorunsuz çalışıyordu, sanırım problem http'den https'ye geçmek oldu.

     
  16. destek

    destek Üye

    Kayıt:
    5 Kasım 2006
    Mesajlar:
    123
    Beğenilen Mesajlar:
    11
    Hatayı ve düzenlediğin kodu yazarsan ona göre yardımcı olabilirim. Sorunsuz çalışması gerekiyor. htaccess yönlendirmesinden dolayı https de sorun çıkmış olabilir.
     
  17. birNC

    birNC Yeni Üye

    Kayıt:
    21 Şubat 2016
    Mesajlar:
    8
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Tasarım
    Şehir:
    İstanbul
    Merhaba,

    htaccess'deki tüm kodlar aşağıda..

    Options +FollowSymLinks
    Options -Indexes
    DirectoryIndex index.php
    RewriteEngine on
    #RewriteRule sitemap\.xml sitemap [L]
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


    Options +FollowSymlinks
    RewriteEngine on
    RewriteBase /

    RewriteCond %{SERVER_PORT} !^443$

    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://www.birnc.com.tr/$1 [R=301,L]


    RewriteCond $1 !^(index\.php|(.*)\.swf|images|css|downloads|js|sitemap\.xml|robots\.txt|favicon\.ico)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/site/$1 [L,QSA]


    Redirect /sitemap.xml /sitemap
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault A86400
    ExpiresByType image/x-icon A2592000
    ExpiresByType application/x-javascript A2592000
    ExpiresByType text/css A2592000
    ExpiresByType image/gif A604800
    ExpiresByType image/png A604800
    ExpiresByType image/jpeg A604800
    ExpiresByType text/plain A604800
    ExpiresByType application/x-shockwave-flash A604800
    ExpiresByType video/x-flv A604800
    ExpiresByType application/pdf A604800
    ExpiresByType text/html A300
    </IfModule>

    # Set up caching on media files for 1 month
    <FilesMatch "\.(ico|gif|jpg|jpeg|png|flv|pdf|swf|mov|mp3|wmv|ppt)$">
    ExpiresDefault A2419200
    Header append Cache-Control "public"
    </FilesMatch>

    # Set up 2 Hour caching on commonly updated files
    <FilesMatch "\.(xml|txt|html|js|css)$">
    ExpiresDefault A7200
    Header append Cache-Control "private, must-revalidate"
    </FilesMatch>

    # Force no caching for dynamic files
    <FilesMatch "\.(php|cgi|pl|htm)$">
    ExpiresDefault A0
    Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
    Header set Pragma "no-cache"
    </FilesMatch>