2013-10-14 2 views
1

저는 Mcamara Laravel/localization (https://github.com/mcamara/laravel-localization)을 사용 중이며 SEO 목적을 위해 URL에없는 경우 기본 언어로 리디렉션하고 싶습니다.URL에없는 경우 기본 언어로 리디렉션하는 방법

www.mydomain.com으로 이동하면 www.mydomain.com/en으로 리디렉션되어야합니다. www.mydomain.com/something으로 이동하면 www.mydomain.com/en/something으로 리디렉션되어야합니다.

동일한 내용 및 동일한 언어이기 때문에 www.mydomain.com 및 www.mydomain.com/en으로 중복 된 콘텐츠를 피하기 위해 리디렉션하고 싶습니다. 나는 같은 내용의 두 URL을 원하지 않습니다. 기본 언어가 'en'인 경우 www.mydomain.com 및 www.mydomain.com/en/에서 동일한 콘텐츠를 사용합니다.

어떻게 리디렉션합니까? .htaccess 또는 routes 파일?

구성 할 수 없습니다. 감사!

답변

3

나는 mcamara/laravel-localization 패키지를 사용한 적이 없지만 언어가 URL에 설정되어 있지 않고 기본 언어로 리디렉션 될 때 감지 할 수있는 간단한 경로를 만들 수 있다고 가정합니다. 그런

뭔가 :

Route::get('/', function(){ 
    return Redirect::to(Config::get('app.default_language')); 
}); 

하지만 사용자가 다시 홈 페이지 "/"에 가면 다른 언어에 대한 사용자 스위치가이 언어를 지킬 때 너무 쿠키를 설정하는 것이 좋습니다, 기본 언어가 아닌이 언어로 리디렉션됩니다.

업데이트 영업 이익의 의견에 따라 :

당신이 그런 비슷한 할 필요가 언어 포함하지 않는 모든 경로 재 지정하려면 :

응용 프로그램/filters.php :

App::before(function($request){ 

    $params = explode('/', Request::path()); 

    if(count($params) >= 1){ 

    $language = $params[0]; 
    $languages = Config::get('app.languages'); //Available languages in your app ex.: array('en', 'fr', 'es') 

    if(!in_array($language, $languages)){ 

     $default_language = Config::get('app.default_language'); 

     return Redirect::to($default_language.'/'.Request::path()); 
    } 
    } 
}); 

참고 : 정보 목적으로 만 코드를 시도하지 않았습니다.

+0

나는 URL 문자열에 언어없이 내 프로젝트에서 모든 URL을 리디렉션 할뿐만 아니라 '/' – Sangar82

+0

당신은 당신의 문제가 더 명확해야한다 나는 당신의 의견을 반영하기 위해 내 대답을 업데이트 juste @ Sangar82 –

+0

@ Sangar82 . – FR6

관련 문제