베이스를 다시 작성하지 않고 하위 디렉터리에서 요청된 파일을 로드하는 방법

베이스를 다시 작성하지 않고 하위 디렉터리에서 요청된 파일을 로드하는 방법

규칙을 활용하여 .htaccess도메인과 파일 경로가 모두 기준과 일치하는 경우 프런트엔드 URL을 변경하지 않은 채 하위 디렉터리 내에서 파일을 로드하려고 합니다.

URL 예:

example.com/specificfile.xml

파일 자체는 공개 웹 루트가 아닌 하위 디렉터리 내에 있습니다.

/var/www/feeds/specificfile.xml

Google에서 이것을 시도하는 동안 많은 결과를 얻었 RewriteBase지만 그것이 내가 추구하는 것이 아닙니다. 단일 파일에 대해서만 "기본 디렉터리를 다시 작성"하고 프런트엔드 URL을 유지해야 합니다.

답변1

/var/www문서 루트라고 가정 하고 /feeds/specificfile.xml요청할 때 서비스를 제공하려면 /specificfile.xml루트 .htaccess파일에서 mod_rewrite를 사용하여 다음을 수행합니다.

RewriteRule ^specificfile\.xml$ feeds/$0 [L]

이것이 작동하려면 RewriteBase전혀 설정하지 않거나(바람직함) 로 설정해야 합니다 RewriteBase /.

$0참조는 단순히 반복을 저장합니다. 즉, 역참조는 일치하는 전체 URL 경로를 참조합니다.RewriteRule 무늬, 즉. specificfile.xml.

.htaccess파일 에 기존 mod_rewrite 지시어가 있는 경우순서 문제. (예: 외부/표준 리디렉션이 먼저 이루어져야 합니다.)

관련 정보