2010-12-16 9 views
0
RewriteEngine On 
RewriteRule books/(.*)/(.*) php/booksByLanguage.php?lid=$2 
RewriteRule list_books/(.*)/(.*) php/listBooks.php?cat_id=$2 


htaccess로 RewriteRule의 제대로 내가 URL을 다시 작성 htaccess로 사용하고

작업

문제가 두 번째 줄 (RewriteRule list_books/(.*)/(.*) php/listBooks.php?cat_id=$2)이 제대로 작동하지 않을 것입니다 (위의 내가 사용하고있는 코드입니다) 없습니다. 즉,


내가 첫 번째 라인을 언급 할 때 두 번째 줄은 제대로 작동합니다 (RewriteRule books/(.*)/(.*) php/booksByLanguage.php?lid=$2)

다음 코드는

RewriteEngine On 
    #RewriteRule books/(.*)/(.*) php/booksByLanguage.php?lid=$2 
    RewriteRule list_books/(.*)/(.*) php/listBooks.php?cat_id=$2 


내가 모두 규칙을 원하는 잘 작동 나를 위해 일해.

답변

2

시작 및 끝 표시 자^$를 추가하십시오.

한다 RewriteRule ^/책/(. )/(.) $ PHP/booksByLanguage.php? 뚜껑 = $ 2

첫 번째 규칙은 늘 list_books 일치를위한 트리거 될 그런 식으로.

+0

+1 올바르게 문제를 인식했습니다. 사이트 구조로 인해 -1 솔루션이 작동하지 않습니다. effoeert에 대해 +1입니다. sum : +1 –

+0

:) 세 번의 클릭을 명확하게 설명해 주셔서 감사합니다. 나는 이것이이 특별한 문제에 대한 고비를 넘는 praveenmon을 얻을 것이라고 생각한다. –

+0

감사합니다. 선장님, 저의 대답이 저에게 효과적이었습니다. @ 조 나는 내가 말한 것을 이해하지 못한다, 나는 여기에서 새로운 사람이다. 어쨌든, 나는이 대답을 받아 들였고 "이 대답은 유용하다"2로 만들었다. – praveenmon

2

문제는 다음과 같습니다. ^으로 시작하는 줄을 정의하지 못했습니다. 두 번째 규칙도 일치하면 첫 번째 규칙이 항상 일치합니다. 문자열과 일치해야하기 때문에 입니다. 예 :

books.*booksshelf 일치 할뿐만 아니라 mybookshelf ^books.*bookshelf

RewriteEngine On 
RewriteRule list_books/(.+)/(.+)$ php/listBooks.php?cat_id=$2 [L] 
RewriteRule books/(.+)/(.+)$ php/booksByLanguage.php?lid=$2 

이 작동하지만 꽤되지 않습니다해야 일치합니다. 문제는 업데이트 된 코드의 첫 번째 규칙이 일치 할 때 두 번째 규칙도 적용된다는 것입니다. 그러나 다른 방법은 없습니다.

그래서 나는 그것을 올리고 마지막 스위치 [L]을 설정하여 나중에 다른 규칙이 실행되지 않도록하십시오.

그러나 이것은 잘못된 길입니다.

당신이 원하는 것만 일치하도록 다시 쓰기 규칙을 정의해야합니다!

내가 당신의 구조에 대해 알고하지 않기 때문에이 작동하지 않을 수 있습니다,하지만 난 다음과 같은 것을 상상할 수 :이 루트 레벨의 경우 슬래시 당신이로 시작을 포함 할 필요가

RewriteEngine On 
RewriteRule ^/list_books/(.+)/(.+)$ php/listBooks.php?cat_id=$2 
RewriteRule ^/books/(.+)/(.+)$ php/booksByLanguage.php?lid=$2 

을 요청의 일부이지만 구조를 알지 못하면 그 사실을 알 수 없습니다.

+0

joe ur 대답도 옳다. 매우 감사드립니다. Ur 상세한 답변은 훌륭합니다. 한 가지 더 궁금한 점이이 질문을 어떻게 닫을 수 있습니까? 여기에서 닫기 버튼을 볼 수 없습니다. – praveenmon

+0

귀하의 questin은 대답을 수락하여 "폐쇄"입니다. 마감 질문은 평판이 좋은 회원의 투표에 의해서만 작동하며 나쁜 질문이나 불쾌한 질문에만 사용됩니다. –