htcaccess 다시 쓰기 규칙이 작동하지 않습니다
P粉848442185
P粉848442185 2024-01-16 20:08:17
0
1
409

저는 웹사이트 루트에서 URL 재작성을 시도하는 프로젝트를 진행 중입니다. 현재.htaccess는 다음과 같습니다

으아아아

내 웹사이트가 재작성이 활성화되었습니다. htaccess tester를 통해 코드를 확인했는데 올바른 값이 표시됩니다.

근데 제가 방문하면 screenshot-of-the-week/screenshot/123 为例时,我得到了 404 页面。当我访问 screenshot-of-the-week/screenshot/잘 작동됩니다.

또한 수동으로 "실제" URL로 이동하면 예상대로 작동합니다. screenshot-of-the-week/screenshot/index.php?id=123

문제가 무엇인지 알 수 없어 다른 폴더로 .htaccess 이동하고 경로를 편집해 보았지만 성공하지 못했습니다.

다른 문제 해결 팁을 제공할 수 있는 사람이 있나요? 리디렉션이 실제로 뒤에서 무엇을 하고 있는지 어떻게 확인할 수 있나요?

P粉848442185
P粉848442185

모든 응답(1)
P粉218775965

이 규칙의 "문제"는 다시 작성된 URL과도 일치한다는 것입니다(특히 [^/]+index.php 匹配),因此会再次重写时间到 /screenshot-of-the-week/screenshot/index.php?id=index.phpid=123 매개변수가 재정의됨). 그렇다면 스크립트가 404 응답(Apache 아님)을 생성할 것으로 예상됩니까?

이 문제를 해결하려면 정규식을 더 구체적으로 만들고 END 플래그(Apache 2.4)를 사용하여 재작성 엔진이 추가 루프(및 두 번째 재작성)를 수행하는 것을 방지해야 합니다.

귀하의 예에서는 숫자 값을 전달합니다. 따라서 숫자 값만 예상하면 숫자만 일치합니다.

예:

으아악

또한 동일한 응답을 생성하는 정규식에 후행 $,否则您的网站可能会被滥用,因为任何内容都可以附加到 URL,并且相同的资源将被服务。 (在您的原始规则中附加 /을 추가했습니다. )

(귀하의 .htaccess 파일이 문서 루트에 있다고 가정합니다.)


MWL 테스터는 파일을 한 번만 통과합니다. 이는 실제 Apache 서버가 작동하는 방식이 아닙니다. 따라서 MWL 테스터는 재작성/재지정 루프를 감지할 수 없습니다.

screenshot-of-the-week/screenshot/ 时,规则不会被处理(正则表达式不匹配)。 mod_dir 提供 DirectoryIndex 文档 (index.php),但没有 id 매개변수에 접근할 때.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿