문제

나는 그것이 사용할 수 있는지 궁금합니다 .htaccess 폴더 이름을 다시 작성하려면 내 말은 이것입니다.

다음과 같은 URL이 있다고 가정 해 봅시다.

www.site.com/folder1/page.php

이제 URL을 다시 작성하고 싶습니다 (예 :

www.site.com/apple/page.php

Folder1은 내 웹 공간의 기존 폴더입니다.

중요 : "Apple"은 이름이 아니라 폴더가 아닙니다!

OK 여기에 단계별 계획이 있습니다.

  1. 사용자 유형 www.site.com/folder1/login.php
  2. URL은 다시 작성하고 URL을로 리디렉션하지 않아야합니다. www.site.com/apple/login.php

이것은 그것을 의미합니다 apple 디렉토리가 아닌 이름 일뿐입니다. 모든 코드는 폴더 1에서 나와야합니다. Acutally Apple은 단지 별칭이어야합니다 folder1. 나는 단지 이름을 바꿀 수 없습니다 folder1 에게 Apple. 따라서 나는 단지 다시 쓰기를 것이다 folder1 에게 apple.

도움이 되었습니까?

해결책

mod_rewrite는 요청 된 URI 만 다시 작성/리디렉션 할 수 있습니다. 따라서 요청해야합니다 /apple/… 해당에 다시 작성합니다 /folder1/….

이 시도:

RewriteEngine on
RewriteRule ^apple/(.*) folder1/$1

이 규칙은 URI 경로로 시작하는 모든 요청을 다시 작성합니다. /apple/… 내부적으로 /folder1/….


편집하다실제로 다른 방법을 찾고있는 것처럼 :

RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301]

이 규칙은 위의 다른 규칙과 함께 작동하도록 설계되었습니다. 요청 /folder1/… 외부로 리디렉션됩니다 /apple/… 그리고 요청 /apple/… 그런 다음 내부적으로 다시 작성됩니다 /folder1/….

다른 팁

노력하다:

RewriteRule ^/apple(.*)?$ /folder1$1 [NC]

URL에 표시하려는 폴더가 문의 첫 번째 부분에있는 경우 - 이것은 일치하는 것이며 두 번째 부분은 기존 폴더에 '다시 작성'합니다. [NC] 플래그는 사례 차이를 무시할 것임을 의미합니다.

자습서는 여기를 참조하십시오. http://www.sitepoint.com/article/guide-url-rewriting/

여기에서 다운로드 할 수있는 Windows 용 멋진 테스트 유틸리티도 있습니다.http://www.helicontech.com/download/rxtest.zip 테스터의 경우 도메인 이름을 제거해야합니다. 따라서 테스트는 /folder1/login.php에 대한 것입니다.

/folder1에서 /Apple에서 리디렉션하려면 이것을 시도하십시오.

RewriteRule ^/folder1(.*)?$ /apple$1 [R]

리디렉션 한 다음 다시 작성하려면 htaccess 파일에 위의 내용을 결합합니다.

RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top