>  Q&A  >  본문

htaccess를 사용하여 디렉토리의 URL을 PHP 파일로 다시 작성

htaccess 파일을 사용하여 간단한 다시 쓰기 규칙을 수행하려고 합니다. 저는 XAMPP를 사용하여 localhost에서 이 페이지를 호스팅하고 있습니다:

으아악

이 작업을 요청할 수 있는 방법은 다음과 같습니다.

으아악

내가 하고 싶은 일은 다음 URL에 대한 요청을 위의 URL로 다시 작성하는 것입니다

으아악

이것을 시도했지만 404 오류가 발생했습니다.

으아악

몇 가지 조사 끝에 다른 옵션을 시도했습니다.

으아악

그런데 지금은 내부 리다이렉트 문제가 너무 많아요

P粉957723124P粉957723124306일 전412

모든 응답(1)나는 대답할 것이다

  • P粉343408929

    P粉3434089292024-01-11 16:05:46

    첫 번째 규칙(".php 확장자 숨기기")은 예상한 것과 (잘못) services/Boat-Dealers.php 的请求重写为 < code>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을 가리키는 잘못된 인바운드 링크가 있는 경우) 한 링크를 다른 링크로 외부적으로 리디렉션해야 합니다.

    회신하다
    0
  • 취소회신하다