URL을 정리하고 .php 확장자를 삭제하려고합니다. 나는 웹 사이트의 기본 폴더에 있으므로 우선 순위 등을 취할 수있는 상위 .htaccess 파일이 없습니다. 여기에 내 htaccess 코드가 있습니다..htaccess url 파일 이름이 ext 인 경우 다시 쓰기 동작을 덮어 씁니다. URL과 동일
이 부분은 어떤 동작이 덮어 쓰여지 든간에 같은 방식으로 동작하므로 실제 문제는 없습니다. 그러나이 다른 줄에 URL 변수를 추가하여 URL 변수를 설명하면
RewriteRule ^give/([0-9]+)/?$ give.php?step=$1 [NC,L]
완전히 무시됩니다. 그러나 give.php의 이름을 다른 것으로 변경하면 url과 일치하지 않으므로 작동합니다. 예를 들어, given.php를 사용하면 .htaccess 규칙에 유의해야합니다. 나는 전에이 문제를 다뤄 본 적이 없다. 내가 변경할 수있는 서버 설정이있어서 내 파일에 이상한 이름을 줄 필요가 없습니까?
다른 파일로 리디렉션하기 위해 첫 번째 줄을 변경했지만 실제 파일 이름은 give.php로 변경하지 않았습니다. 리디렉션을 무시하고 여전히 give.php 파일을로드했습니다.
편집 : 두 규칙의 순서를 변경해 보았습니다. 두 규칙을 모두 주석으로 작성한 다음 다른 규칙이 서로 충돌하는지 확인해 보았습니다. 내가 생각할 수있는 최고의 서버는/give/exists 디렉토리가 없으면 /give.php를 지시/부여/전달하는 일종의 기본 동작을합니다. 왜냐하면 두 규칙을 제거하더라도 /giving/php/gig.php로 이동하기 때문입니다. 파일 이름을 given.php로 변경했을 때만 기본 동작이 중단됩니다.
RewriteRule ^give/?$ resources.php [NC,L]
그리고 한 파일 give.php 존재로, 여전히 give.php로 리디렉션 : 나는이에 간단한 규칙을 설정했습니다. give.php를 제거하거나 이름을 바꾼 경우 /로 이동하면 resources.php로 리디렉션됩니다.
내 문제가 해결되었습니다. 감사! – AdamMasters