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

워드프레스 정보를 제공하는 블로그 Avada 2019. 7. 16. 14:06 • 댓글:

URL에서 html 확장자 없애기

예를 들어, 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]
// 출처: How to remove .php, .html, .htm extensions with .htaccess

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]

이와 비슷한 내용을 이 블로그에서 이전에 다룬 것 같지만 찾을 수가 없네요.

stackoverflow 글에서 'URL에서 .html 확장자를 없애는 다양한 방법'을 살펴볼 수 있습니다.

.htaccess 파일은 FTP를 통해 접속하여 수정하거나 블루호스트 등 cPanel을 지원하는 웹호스팅을 이용하는 경우에서 cPanel 내의 File Manager를 통해 접속하여 파일을 수정/편집할 수 있습니다.

참고: