2011-10-06 6 views
3

나는 내 사이트에 대해 일부 SEO를 수행 중이며 category/this-cat.htmlcategory/this-cat-p2.html과 같은 URL을 사용하여 각각 index.php?mode=viewCat&id=this-catindex.php?mode=viewCat&id=this-cat&start=10으로 리디렉션합니다. 문제는 URL에 -p2 부분이 있는지 확인하고 0 또는 0보다 작은 숫자를 반환하는 경우 내 RewriteRule에 조건부가 필요하다는 것입니다. p.URL RewriteRule 조건부

현재 규칙 :이 대한 올바른 구문이되었을 것이라고 생각했을 것이다

RewriteRule ^category/(.*?)\.html$ index.php?mode=viewCat&title=$1

는 :

그러나 RewriteRule ^category/(.*?)(?(-p)(.*?)|0)\.html$ index.php?mode=viewCat&title=$1&start=$2

,이 500 오류를 반환하도록 서버를 발생 . 자습서를 읽고 지난 한 주 동안 함께 작업 한 후에도 나는 아직 그 문제를 거의 파악하지 못했습니다. 누구든지이 작업과 같은 조건부를 만드는 방법을 설명 할 수 있습니까?

답변

2

끝났습니다. 나는 당신이하려고하는 것이 선택적 -p# 그룹화를 포착하지 않는다고 믿지만, 존재하는 경우 숫자를 원한다. 그룹에 대한 비 캡처 플래그는 ?: 접두어입니다.

RewriteRule ^category/(.*?)(?:-p(\d+))?\.html$ index.php?mode=viewCat&title=$1&start=$2 

: 당신이 일치하는 것에 대해 구체적으로하는 것이 좋습니다으로 나는 \d (자리)을 사용했다. 또한 start은 숫자 또는 아무것도 표시하지 않습니다. 서버 측 코드는 설명 된 논리의 나머지 부분을 처리하는 데 더 적합합니다.

+0

위대한 작품! 수정 해 주셔서 감사합니다! – chaoskreator