2012-12-20 2 views
0
내 쿼리 중 하나를 캡처 정규식을 만드는 방법에 대해입니다

: htaccess로 정규식

  • 0 또는 1 페이징 인덱스를
  • 0 또는 1 개 제품 이드

    1. 0 개 이상의 하위 카테고리
    2. 이것은 단일 매개 변수로 모든 것을 읽음으로써 쉽게 수행 할 수 있습니다.이 매개 변수는 PHP로 전달되지만 코드 톤과 성능에 영향을 미칩니다. 반면 htaccess + regex는 한 줄의 c로이를 수행합니다 송시.

      예 :

      카탈로그/
      페이지에서 시작하는 모든 제품을보기 0

      카탈로그/인형/바비 인형/말리부/
      디스플레이 페이지에서 시작하는 모든 말리부 바비 인형 0

      카탈로그/인형/gijoe/p_5/id_99
      디스플레이 제품 id_99. 그러나 페이지와 카테고리는 탐색 링크로 표시되도록 유지 관리됩니다.

      카탈로그/인형/p_3
      카탈로그/인형/바비 인형/

      RewriteRule ^catalog/(([^/:*?"<>|\r\n]*/)*)(id-([0-9]{1,4}+))*$ catalog.php?category=$1&id=$3 
      

      id_456 필자 카탈로그/인형/바비 인형/ID-1234/같은 같은 URL로 시도; id-1234/id-345/id-145 /와 같은 물건은 145 페이지를 반환하므로 중복 페이지가있는 서재 위치를 아프게 할 수 있습니다.이 정규식은 페이징을 다루지 않습니다. ... RegexBuddy3 (매우 유용합니다, 구매해야합니다)을 사용하지만, 아파치 + httacess는 긴 표현식을 다룰 때 100 % 동일한 행동을하지 않습니다.

  • 답변

    0

    가장 쉬운 당신은 URL은 다음과 같이 할 수 범주와 URL의 제품 모두의 ID를 전달하는 것입니다
    카탈로그/인형-12/- 이제 범주에서 카탈로그에서 찾고있다 id 12
    카탈로그/인형/바비/말리부 -33/- 지금 카탈로그에서 ID를 찾고 있습니다. 33
    catalog/dolls/barbie/malibu-33/barbie-450 - 카탈로그를 찾고 있습니다. ID 33 카테고리 및 제품 450

    htaccess에는 3 가지 규칙이 모두 포함되어야합니다.
    catalog /(.*)- number /(.*)- number와 같은 링크를 받으면 범주 안에있는 제품을 볼 수 있습니다.
    카탈로그 /(.*)- 번호 다음은 카테고리를보고 있습니다
    카탈로그/- 전체 카탈로그를보고 있습니다.

    숫자를 모두 포착 할 필요는 없습니다. 번호 만 있으면 이미 자신의 위치를 ​​알 수 있습니다.

    +0

    Acceptable ... 그러나 어떻게 페이징을 처리 할 수 ​​있습니까? 그리고 세 가지 규칙이 성능에 영향을 미칠까? – plasmalasgun

    +0

    3 가지 규칙은 큰 차이를 만들지 않습니다. 그러나 페이지 매김을 원하면 더 많은 규칙을 추가해야합니다. 나는 당신이 PHP에서 이것을하려고한다면 속도가 더 느릴 것이라고 생각한다. –