.htaccess를 사용하여 폴더 이름을 다시 작성하십시오
문제
나는 그것이 사용할 수 있는지 궁금합니다 .htaccess
폴더 이름을 다시 작성하려면 내 말은 이것입니다.
다음과 같은 URL이 있다고 가정 해 봅시다.
www.site.com/folder1/page.php
이제 URL을 다시 작성하고 싶습니다 (예 :
www.site.com/apple/page.php
Folder1은 내 웹 공간의 기존 폴더입니다.
중요 : "Apple"은 이름이 아니라 폴더가 아닙니다!
OK 여기에 단계별 계획이 있습니다.
- 사용자 유형
www.site.com/folder1/login.php
- 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]