2017-08-22 13 views
1

私のウェブサイトには2つの言語があります。私は、言語を変更すると、私は次のように、URLが同様に変更したい:スイッチケースでmod_rewriteを使用することはできますか

www.domain.com 

はこれに変更:

www.domain.com/th 

と、この:

www.domain.com/en 

マイPHP:

config.php

言語

<li><a href="javascript:lang('th');" <?= $_SESSION['language'] == "th" ? 'class="active"' : ''; ?> >TH</a></li> 
<li><a href="javascript:lang('en');" <?= $_SESSION['language'] == "en" ? 'class="active"' : ''; ?> >EN</a></li> 

を変更するためのリンクは、私がこれを行うために.htaccessファイルを使用することはでき

<?php 
session_start(); 
error_reporting(E_ALL^E_NOTICE); 
ini_set('display_errors', 1); 

if(empty($_SESSION['language'])){ 
    $_SESSION['language'] = "th"; 
} 

if ($_SESSION['language'] == "th") { 
    include $_SERVER['DOCUMENT_ROOT'] . "/language/th.php"; 
} else { 
    include $_SERVER['DOCUMENT_ROOT'] . "/language/en.php"; 
} 

$base_url = "/"; 

function lang($th, $en) { 
    if ($_SESSION['language'] == "th") { 
     return $th; 
    } else { 
     return $en; 
    } 
} 

lang.php

<?php 

session_start(); 

switch ($_POST["lang"]) { 
    case "th": 
     $_SESSION['language'] = "th"; 
     echo json_encode("complete"); 
     break; 

    case "en": 
     $_SESSION['language'] = "en"; 

     echo json_encode("complete"); 
     break; 

    default : 
     break; 
} 
?> 

答えて

0

いいえ、あなたは.htaccessからPHPセッションを引き受けることはできません。しかし、mod_rewriteを使用して、すべてのリクエストをconfig.phpに書き換えることができます。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    # Only for non-existing directories, files or symlinks 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-l 
    RewriteRule .* config.php [L] 
</IfModule> 
関連する問題