>source

특정 디렉토리 이름이 포함 된 모든 URL을 파일로 전달하려고합니다. 디렉토리 이름은 다양한 URL 구조를 실행하고 있으므로 URL 내의 어느 위치 에나있을 수 있습니다. 다음은 몇 가지 예입니다.

/name1/font/test/test1
/folder/name2/font/test/test1
/another/folder/name3/font/test/test1

이것들은 모두 전달해야합니다

/name/index.php?type=test&src=test1

다음을 시도했지만 재 작성 규칙에 능숙하지 않습니다.

RewriteRule ^([_0-9a-zA-Z-])/font/([_0-9a-zA-Z-])/([_0-9a-zA-Z-])$ $1/index.php?type=$2&src=$3 [R=301,L]

  • 답변 # 1

    이 규칙을 사용할 수 있습니다.

    RewriteRule (?:^|/)([\w-]+)/font/([\w-]+)/([\w-]+)/?$ $1/index.php?type=$2&src=$3 [NC,QSA,L]
    
    

    RegEx 세부 정보 :

    (?:^|/) : 일치 ^ 또는 /

    ([\w-]+) : 1 개 이상의 단어 일치 또는 - 캐릭터, 캡처 $1

    /font/ : 일치 /font/

    ([\w-]+): Match 1+ word or - characters, capture this in $2`

    / : 일치 / .

    ([\w-]+) : 1 개 이상의 단어 일치 또는 - 캐릭터, 캡처 $1

    /?$ : 선택적 일치 / 끝나기 전에

    사용되는 플래그는 다음과 같습니다.

    NC : 대소 문자 무시

    L : 마지막 규칙

    QSA : 쿼리 문자열 추가

  • 답변 # 2

    표시된 샘플로 다음과 같이 작성하고 테스트 해 보시기 바랍니다.

    RewriteEngine ON
    RewriteCond %{REQUEST_URI} font [NC]
    RewriteCond %{THE_REQUEST} (?:^|/)([\w-]+)/font/([^/]*)/([^/]*)/? [NC]
    RewriteRule ^(.*)$ %1/index.php?type=%2&src=%3 [NE,NC,L]
    
    

    설명:다음과 같이 자세한 설명을 추가합니다.

    RewriteEngine ON : RewriteEngine ON을 활성화하여 모드 재 작성 규칙을 인식 할 수 있도록합니다.

    RewriteCond %{REQUEST_URI} font [NC] : URI에 폰트가 있는지 확인 후 더 이동합니다.

    RewriteCond %{THE_REQUEST} (?:^|/)([\w-]+)/font/([^/]*)/([^/]*)/? [NC] : 조건을 사용하여 확인 THE_REQUEST 글꼴이 있고 나중에 사용하기 위해 여기에서 역 참조에서 필요한 모든 값을 잡습니다.

    RewriteRule ^(.*)$ %1/index.php?type=%2&src=%3 [NE,NC,L] : 단순히 OP에 의해 필요한 값으로 index.php로 리디렉션합니다.

관련 자료

  • 이전 python - for 루프 - 목록의 각 요소에 대해 함수 실행, 7 일 범위 결정
  • 다음 sql - LIKE 연산자는 어떻게 사용하나요?