2010-02-23 2 views
1

현재 웹 페이지를 수정하려고하는데, 현재 QueryString을 사용하여 페이지를 표시하고 있으며 웹 사이트 URL을 "검색 엔진 친화적 인"것으로 변경하려고합니다. ,. (재귀 적) .htaccess 파일의 정규 표현식

나는 htaccess로 파일 또한 정규 표현식에서 초보자 및 해요, 난 그렇게 데이터베이스에 반복적으로 저장됩니다

http://someaddress.bla/en/$rootCat/$sub-category/$sub-category2/.../$leafCat 

카테고리에

http://someaddress.bla/index.php?lang=en&rootCategory=$rootCaty&leafCategory=$leafCat 

에서 URL을 변경하려면 각 카테고리 수준을 URL에 표시해야합니다. 하지만 필요한 것은 URL의 마지막 카테고리뿐입니다. 예를 들어 카테고리는 같은 루트 카테고리를 할 수있다 :

http://someaddress.bla/en/Company/AboutUs 

: 그것은 같은 하위 범주가 될 수

http://someaddress.bla/?lang=en&RootCategory=Company 

나 : 현재 URL에서 표시됩니다

http://someaddresss.bla/en/Company 

현재 URL에서 표시됩니다 :

http://someaddress.bla/?lang=en&RootCategory=Company&LeafCategory=AboutUs 

또는 다음과 같은 잎일 수 있습니다.

http://someaddress.bla/en/Company/AboutUs/Staff/.../Steve 여기서 "스티브"는 재귀의 잎입니다. 이 페이지는 현재 URL에서 표시됩니다 :이 상황을 처리 할 수있는 정규 표현식을 쓸 수 없습니다

http://someaddress.bla/?lang=en&RootCategory=Company&LeafCategory=Steve 

, 어떤 도움을 이해할 수있을 것이다. 감사!

+0

당신은 하나의 PHP 파일에 대해 404 개의 요청을 mod_rewrite하는 것을 고려 했습니까? 그 파일 내에서 정규 표현식을 수행합니까? –

+0

"mod_rewrite를 사용하여 하나의 PHP 파일에 대한 404 요청"과 관련된 내용을 이해하지 못했지만 PHP 파일이 여러 개 있습니다. 내용이 누락되었거나 PHP가 없는지 확인할 수 있습니다. 정규 표현식을 "RewriteRule^/? ([^ /] +) /? (?^/] +) /? $ someFile.php? lang = $ 1 & RootCategory = $ 2로 변경하려고합니다. RewriteRule ^/$ 1 & RootCategory = $ 2 & LeafCategory = $ 4 " 내가 어디에 있니? ([^ /] +)/([^ /] +) someFile.php – fsonmezay

답변

2
RewriteRule ^/?([^/]+)/([^/]+)/?$ /?lang=$1&RootCategory=$2 
RewriteRule ^/?([^/]+)/([^/]+)(/.+)?/([^/]+)/?$ /?lang=$1&RootCategory=$2&LeafCategory=$4 
+0

덕분에 데이터를 처리해 주셔서 감사합니다. – fsonmezay

0

당신은 $에 (문자 "문자열의 끝") 고정하여 URL의 마지막 항목을 일치시킬 수 있습니다 :

([^/]+)$ 

이 일치를하고 있지 않은 URL 문자의 마지막 세트를 캡처 / 문자.