• 02-04-2021, 22:41:46
    #1
    Merhaba php hazırladığım çok dilli sitede sayfalar tek ama dil değiştirildiğinde klasörü olmayan tr, eng vs gelmesini istiyorum. .htacess araştırdım ama daha bir çözüm bulamadım. Dil değişimi session ile gerçekleşiyor. Şimdiden yardımlarınız için teşekkürler.
    Dil Değişim Kodu SESSION
    <?php
    require_once'baglan.php';
    $diller=$db->prepare("SELECT*FROM dil");
    $diller->execute();
    session_start()

    ;ob_start();
    if(!isset($_SESSION['anasayfadil'])){

    $_SESSION['anasayfadil']=1;}
    if(isset($_GET['dildegistir'])){
    $dil =$_GET['dildegistir'];
    $_SESSION['anasayfadil']=$dil;
    header('location:'.$_SERVER['HTTP_REFERER']);
    }?>


    Dil Değişim Linki
    <?php
    if($diller->rowCount()){
    foreach($diller as$row){?>
    <aclass="dropdown-item"href="index.php?dildegistir=<?phpecho$row['dil_kisa'];?>"><imgsrc="<?phpecho$row['dil_resimyol'];?>"width="32"><?phpecho$row['dil_ad'];?></a>
    <?php } } ?>
  • 03-04-2021, 09:10:18
    #2
    antucb adlı üyeden alıntı: mesajı görüntüle
    Merhaba php hazırladığım çok dilli sitede sayfalar tek ama dil değiştirildiğinde klasörü olmayan tr, eng vs gelmesini istiyorum. .htacess araştırdım ama daha bir çözüm bulamadım. Dil değişimi session ile gerçekleşiyor. Şimdiden yardımlarınız için teşekkürler.
    Dil Değişim Kodu SESSION
    <?php
    require_once'baglan.php';
    $diller=$db->prepare("SELECT*FROM dil");
    $diller->execute();
    session_start()

    ;ob_start();
    if(!isset($_SESSION['anasayfadil'])){

    $_SESSION['anasayfadil']=1;}
    if(isset($_GET['dildegistir'])){
    $dil =$_GET['dildegistir'];
    $_SESSION['anasayfadil']=$dil;
    header('location:'.$_SERVER['HTTP_REFERER']);
    }?>


    Dil Değişim Linki
    <?php
    if($diller->rowCount()){
    foreach($diller as$row){?>
    <aclass="dropdown-item"href="index.php?dildegistir=<?phpecho$row['dil_kisa'];?>"><imgsrc="<?phpecho$row['dil_resimyol'];?>"width="32"><?phpecho$row['dil_ad'];?></a>
    <?php } } ?>
    Htaccess ile yapabilirsiniz
    RewriteEngine On
    RewriteCond %{HTTP:Accept-Language} ^en [NC] 
    RewriteRule ^$ http://mysite.com/en/ [L,R=301]
    RewriteCond %{HTTP:Accept-Language} ^de [NC] 
    RewriteRule ^$ http://mysite.com/de/ [L,R=301]
    RewriteCond %{HTTP:Accept-Language} ^fr [NC]
    RewriteRule ^$ http://mysite.com/fr/ [L,R=301]
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(en|de|fr)/?$ index.php?dildegistir=$1 [QSA,NC,L]
  • 04-04-2021, 21:21:41
    #3
    Öncelikle cevabın için teşekkürler ilk sayfaya girildiğinde web.tr/tr/ olarak geliyor ama dili seçtiğimde web.tr/index.php?dildegistir=eng olarak adres çubuğunda gözüküyor. Htaccess yazdığım kod aşağıda localde denemiyorum direk siteden deniyorum ama bir türlü yapamadım atladığım bir yer mi var bakarsanız sevinirim.

    RewriteEngine On
    RewriteCond %{HTTP:Accept-Language} ^eng [NC]
    RewriteRule ^$ http://web.tr/eng/ [L,R=301]
    RewriteCond %{HTTP:Accept-Language} ^ger [NC]
    RewriteRule ^$ http://web.tr/ger/ [L,R=301]
    RewriteCond %{HTTP:Accept-Language} ^tr [NC]
    RewriteRule ^$ http://web.tr/tr/ [L,R=301]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(eng|ger|tr)/?$ index.php?dildegistir=$1 [QSA,NC,L]