다음 URL이 있습니다:
https://sub.example.com/economy/billing/ Payment-check/434/khipu/1000/CLP/1673526088/
다음 URL을 반영하기 위해 마지막 5개 디렉터리를 GET 값으로 변환하고 싶습니다.
https://sub.example.com/economy/billing/ Payment-check/?id=434&gateway=khipu&amt=1000&curr=CLP&ts_ttPageLoad=1673526088
다음과 같은 .htaccess 라인이 있습니다:
으아악https://htaccess.madewithlove.com/에서 다음과 같은 재작성 결과를 얻었습니다.
https://sub.example.com/index.php?id=economy/billing/ Payment-check/434&gateway=khipu&amt=1000&curr=CLP&ts_ttPageLoad=1673526088
내가 뭘 잘못했나요? 감사해요!
편집: https://sub.example.com/economy/billing/ Payment-check/
에 있는 .htaccess
정규식 수량자
*
默认情况下是贪婪,因此会消耗尽可能多的内容,然后根据需要回溯。这就是为什么包含
economy/billing/ payment-check/434
(即尽可能满足正则表达式)。尽管如此,这是假设.htaccess
파일은 문서 루트에 있습니다(MWL 테스터는 이를 가정합니다).단일 경로 세그먼트만 일치시키려면 하위 패턴 캡처에서 슬래시를 제외하세요.
([^/]+)
.또한 규칙의 특성에 따라 이
.htaccess
文件位于/economy/billing/ payment-check/
子目录中(而不是根)? “MWL tester”工具假定.htaccess
文件位于文档根目录中(并且无法更改)。事实上,如果.htaccess
파일이 서버에서 "작동"하는 하위 디렉터리에 있다고 가정합니다. 그러나 URL 변경이 일치하는 경우 여전히 가능하므로 이는 최적이 아닙니다. 많은 구조..htaccess
文件位于/economy/billing/ payment-check/.htaccess
인 경우 다음을 사용하세요.정규 표현식
[^/]+
슬래시를 제외한 모든 항목과 일치합니다.그러나 규칙이 루트
으아아아.htaccess
파일에 있는 경우(MWL 테스터가 예상한 대로) 규칙은 다음과 같아야 합니다.첫 번째 캡처된 하위 패턴은 이제 replacement문자열(두 번째 인수)에서 반복되는 URL 경로입니다. 이렇게 하면 두 번째 매개변수에서 URL 경로를 수동으로 반복하는 것을 방지할 수 있습니다.
귀하의 URL에는 경로 세그먼트에 특정 데이터 유형이 필요한 것 같습니다. 예를 들어 첫 번째, 세 번째, 다섯 번째 "인수"는 숫자처럼 보입니다. 이 경우 구체적이고 숫자만 일치해야 합니다. 마찬가지로 네 번째 "매개변수"는 대문자이고 두 번째 매개변수는 소문자입니다. 따라서 구체적으로 다음과 같이 다시 작성할 수 있습니다(하위 디렉터리의 .htaccess 파일 사용):
으아아아예상하는 URL 형식 과만 일치합니다.