IT 노하우

PHP .htaccess를 사용하여 .php, .html, .htm 확장자를 URL에서 제거하는 방법

페이지 정보

본문

예를 들어, example.com/about을 브라우저의 URL에 입력하면 example.com/about.html
파일의 콘텐츠가 표시되도록 하고 싶은 경우가 있을 수 있습니다. 즉, example.com/about에 접속하면 example.com/about.html이 

로드되지만 브라우저의 URL에는 example.com/about과 같이 html 확장자 없이 표시되도록 하는 것입니다.

이 경우 다음 코드를 .htaccess 파일에 추가하여 테스트해보니 잘 작동되는 것을 확인했습니다.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
 

php 파일 확장자인 경우 다음과 같은 코드를 .htaccess 파일에 추가할 수 있습니다.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

끝에 슬래시(/)를 추가하는 것을 감안하고 싶은 경우 다음 코드를 사용할 수 있습니다.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

.htaccess 파일은 FTP를 통해 접속하여 생성하거나 SSH을 통해 업로드 할 수 있습니다.