htaccess 파일을 사용하여 간단한 다시 쓰기 규칙을 수행하려고 합니다. 저는 XAMPP를 사용하여 localhost에서 이 페이지를 호스팅하고 있습니다:
으아악이 작업을 요청할 수 있는 방법은 다음과 같습니다.
으아악내가 하고 싶은 일은 다음 URL에 대한 요청을 위의 URL로 다시 작성하는 것입니다
으아악이것을 시도했지만 404 오류가 발생했습니다.
으아악몇 가지 조사 끝에 다른 옵션을 시도했습니다.
으아악그런데 지금은 내부 리다이렉트 문제가 너무 많아요
첫 번째 규칙(".php 확장자 숨기기")은 예상한 것과 (잘못)
services/Boat-Dealers.php
的请求重写为 services/Boat-Dealers.php.php 等。这是因为条件(始终成功)没有检查您最终重写的内容。REQUEST_FILENAME
다르기 때문에 "내부 리디렉션이 너무 많습니다"를 발생시킵니다. (이러한 규칙의 순서를 바꾸면 이 즉각적인 문제가 해결됩니다.)다음에 대한 내 의견을 참조하세요using-apache-rewrite-rules-in-htaccess-to-remove-html-causing-a-500-error" title=".htaccess에서 Apache 재작성 규칙을 사용하여 .html 삭제 500 오류 발생">ServerFault 문제 에 명시된 대로).
규칙 순서도 틀리네요.파일이 다음과 같다고 가정해 보세요:
문자열의.htaccess
文件位于/naveesh/.htaccess
(不是文档根目录),那么您的完整.htaccess
으아아아replacement 슬래시 접두사가 제거되었습니다.
여기에서는RewriteBase
지시문이 필요하지 않습니다. 상대대체
RewriteBase
指令。相对替换是相对于.htaccess
는.htaccess
파일이 있는 디렉토리를 기준으로 합니다.URL 매개변수를
MultiViews
,因为如果禁用,此规则将无法按预期工作。该请求将被重写为services.php
,但不包含serv
비활성화해야 합니다. (일부 공유 서버에서는 다중 보기가 활성화되는 경우가 있어 많은 충돌이 발생할 수 있습니다.)또한 요청된 URL에 선택적 후행 슬래시를 허용해서는 안 됩니다. 동일한 콘텐츠를 제공하는 두 개의 서로 다른 URL(후행 슬래시가 있는 URL과 슬래시가 없는 URL)이 있으므로 중복된 콘텐츠 문제가 발생할 수 있습니다. 예시 URL에는 후행 슬래시가 없는데 왜 포함합니까? 선택적 후행 슬래시를 허용해야 하는 경우(예: 비정규 URL을 가리키는 잘못된 인바운드 링크가 있는 경우) 한 링크를 다른 링크로 외부적으로 리디렉션해야 합니다.