2010-05-28 4 views
1

각 섹션에 대한 콘텐츠가있는 사이트를 구축합니다.URL에 'article'이 (가) 일치합니다. RewriteRule

urls range from;
등 /일/
/일/인쇄/
/일/인쇄/폴더

그러나, 사용자가 그래서 기사를 클릭 할 수있는 점에서,
/일/기사/1066
/일/인쇄/기사/
/일/인쇄/폴더/기사/1066

1066 내가 URL에 '기사'가있을 때 감지 할 필요가 htaccess로 사용 몇 가지 다른 변수를 설정하십시오.

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/$ 
sets index.php?level1=$1&level2=$2&level3=$3&level4=$4 

하지만 경우

'기사/([0-9 -] +)'?의 URL에 말은/작업/인쇄/기사/반품 index.php에 1066 레벨 1 = $ (1) & 레벨 2 = $ 2 & articleID = 1066

기본적으로 레벨의 양은 항상 달라 지지만 필요한만큼 반환하고 싶습니다. 또 다른 예는/일/인쇄/폴더/아카이브/기사/1,066 수익률은

index.php?level1=$1&level2=$2&level3=$3&level4=$4&articleID=1066 

어떤 도움을 주시면 감사 것입니다! Dan

답변

0

결국 나는 그것을 수동으로했습니다! (더 광범위한 솔루션을 선호하지만)

# MENU ### 

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/$ index.php?level1=$1&level2=$2&level3=$3 [L] 

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/$ index.php?level1=$1&level2=$2 [L] 

RewriteRule ^([a-zA-Z0-9\-]+)/$ index.php?level1=$1 [L] 


### WITH ARTICLE ### 


RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/article/([0-9\-]+)/([a-zA-Z0-9\-]+)$$ index.php?level1=$1&level2=$2&level3=$3&articleID=$4 [L] 

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/article/([0-9\-]+)/([a-zA-Z0-9\-]+)$$ index.php?level1=$1&level2=$2&articleID=$3 [L] 

RewriteRule ^([a-zA-Z0-9\-]+)/article/([0-9\-]+)/([a-zA-Z0-9\-]+)$ index.php?level1=$1&articleID=$2 [L] 


RewriteRule ^$ index.php?level1=home [L] 
0

간단한 해결책은 PHP 스크립트에서 레벨 감지를하는 것입니다.

RewriteRule ^(.+)/article/(\d+)$ index.php?levelsUri=$1&articleID=$2 

그런 다음 "levelsUri"요청 값을 구문 분석하고 PHP 스크립트의 수준을 감지 할 수 있습니다.