하나의 파일 접미사 유형을 다른 파일 접미사 유형에 별칭으로 지정하는 mod_rewrite
-
08-06-2019 - |
문제
나는 이것을 충분히 명확하게 설명할 수 있기를 바랍니다. 그러나 그렇지 않은 경우 알려주시면 명확하게 설명하도록 노력하겠습니다.
저는 현재 ColdFusion을 사용하여 사이트를 개발 중이며 사이트가 PHP를 사용하는 것처럼 보이도록 mod_rewrite 규칙을 적용했습니다.index.php에 대한 모든 요청은 index.cfm에 의해 처리됩니다(규칙은 *.php를 *.cfm에 매핑함).
이것은 훌륭하게 작동합니다. 지금까지는 매우 좋습니다.문제는 index.cfm(또는 ColdFusion 페이지)이 직접 요청되는 경우 404 상태 코드를 반환하고 싶다는 것입니다.
mod_rewrite를 사용하여 *.cfm 파일에 대한 액세스를 차단하려고 하면 *.php에 대한 요청에 대해 404도 반환됩니다.
.htaccess를 사용하는 대신 Apache 구성을 변경해야 할 수도 있다고 생각합니다.
해결책
당신은 사용할 수 있습니다 S
건너뛰기 플래그 404
규칙은 다음과 같습니다.
RewriteEngine on
# Do not separate these two rules so long as the first has S=1
RewriteRule (.*)\.php$ $1.cfm [S=1]
RewriteRule \.cfm$ - [R=404]
또한 다음을 사용하고 있는 경우 Alias
옵션을 추가해야 합니다. PT
깃발.참조 mod_rewrite 문서 자세한 내용은.
다른 팁
사람들이 도움을 받기 위해 다시 만들 필요가 없도록 이미 가지고 있는 규칙을 출발점으로 게시하세요.
가장 먼저 시도할 사항으로 .php를 .cfm 파일에 매핑하는 규칙에 대해 [L]을 테스트해 볼 것을 제안합니다.
재작성 규칙의 두 가지 개별 그룹(하나는 .php용, 다른 하나는 .chm용)을 사용해야 하며 이 그룹을 RewriteCond %{REQUEST_FILENAME}과 상호 배타적으로 만들어야 합니다.그리고 jj33에서 제안한 대로 [L] 플래그를 사용하세요.
.htaccess에 규칙을 유지할 수 있습니다.