2014-01-29 1 views
0

웹 사이트에서 다시 쓰지 않는 순간에는 웹 사이트와 .htaccess를 모두 다시 작성하는 중입니다. 다국어로되어 있으며 현재 쿼리 문자열 (?lang=en/es/de)을 통해 언어가 변경됩니다.여러 언어에 대한 다시 쓰기 규칙

나는 그것이 페이지가 별도의 파일로 저장됩니다 순간 http://website.com/en/products/product1

를 읽도록 즉이 하지 완전히 재 작성 등의, URL을 포맷하고 싶습니다 : http://website.com/index.php?page=product1&category=product&lang=en

가되다 :

페이지

http://website.com/en/products/product1 모든 루트 디렉토리에 저장됩니다, 하지만 개별 규칙을 사용하여 별도의 파일을 다시 작성합니다 (작은 사이트 일뿐입니다).

내가 겪고있는 문제는 다른 곳에서 찾은 정규식 솔루션이 ?lang=en 부분을 대체 한 다음 URL 끝에 추가하는 것입니다. 위에 표시된 것처럼 도메인의 URL 바로 뒤에 올리려면 어떻게해야합니까?

희망이 있으니 미리 감사드립니다.

답변

0

아래 희망 사항/* 복사하여 붙여 넣기를하고 이름을 저장하십시오. htaccess로 */

RewriteEngine On 
RewriteBase /website.com/ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
#ex1:http://website.com/en/products/product1 
RewriteRule ^([a-zA-Z_-]+)/([a-zA-Z_-]+)/([a-zA-Z_-]+)?$ index.php?lang=$1&category=$2&page=$3 [L] 

/* 및에 파일/

<!-- #ex1:http://website.com/en/products/product1 --> 
<a href="<?php echo "en/products/product1" ?>">Link</a> 
+0

는 가짜 (SEO) 디렉토리입니다 ** 제품 ** 카테고리는 ** 제품 **을 원하면서? 그걸 조심해! –

1

DOCUMENT_ROOT/.htaccess 파일에이 코드를 넣어 * PHP :

RewriteEngine On 
RewriteBase/

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+index\.php\?page=([^&]*)&category=([^&]*)&lang=([^&\s]*) [NC] 
RewriteRule^/%3/products/%1? [R=302,L] 

# internal forward from pretty URL to actual one 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /index.php?page=$3&category=product&lang=$1 [L,QSA] 
+0

참고 ** ** 현재 URL 형식이 아닙니다 **, 페이지는 http : // website.com/fluffy-bunny.php 및 http://website.com/small과 같은 개별 파일 형식으로 저장됩니다. -cat.php' – Charlie

+0

또한 http : // website.com/ko/products/product1을 읽도록 URL을 포맷하고 싶습니다.이 규칙은 해당 구성표에 대한 것입니다. – anubhava

+0

좋아요 ... 작동하지 않는 것 같습니다. 이상적으로 저는 정규식에 대해 머리를 써야합니다. '여러 개의 쿼리 문자열'형식으로 '내 웹 사이트를 전체'단일 색인 페이지로 변환하도록 제안 하시겠습니까? – Charlie