프로그래밍

url 주소에서 .php .html 등 확장자 제거하는 방법

아마존 AWS 서비스 중에 라이트세일에서 LAMP 인스턴스를 생성하여 웹사이트 하나를 만드는 중이다.

기본 개발 언어가 php인데 페이지를 만든 후 url 주소 테스트를 해보니 html파일과 php 파일 모두 url 경로에 포함되어 있어 간결함이 없어 보이고, 외부에 공유할 때 주소가 길어지는 부분도 있어도 제거하는 방법에 대해 기록해둔다.

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

testsite.com/help주소에 접속하면 testsite.com/help.php 페이지가 로드되는데, 브라우저의 URL에는 testsite.com/help와 같이 php 확장자가 보이지 않게 하는 것이다.

1. php 파일 확장자 제거방법

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

2. html 파일 확장자 제거방법

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

3. url 끝에 슬러시(/)를 추가하고 싶을 경우

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파일에 접근이 필요하다면, .htaccess 파일을 파일질라와 같은 FTP를 통해 다운받은 후 수정해서 업로드 한다. 만약, 블루호스트 등 호스팅 업체에서 cPanel을 지원하는 경우에서 cPanel 내의 File Manager를 통해 접속하여 파일을 수정/편집할 수 있다.

비트나미의 경우 기본적으로 보안 및 성능상의 이유로 .htaccess 파일을 비활성화 한다고한다. 좀 더 자세한 내용은 비트나미 기본 .Htaccess 파일 구성 이해 문서에서 확인할 수 있다. 보안 및 성능을 무시하고 사용하고 싶다면 아래와 같은 방법으로 해결할 수 있지만 권하지 않는다. /opt/bitnami/apache2/conf/bitnami/bitnami.conf 파일에 RewriteRule 등을 추가하는 것을 추천한다.

.htaccess 사용을 활성화하려면 bitnami.conf파일 에서 AllowOverride All 로 설정해야 한다. /opt/bitnami/apache2/conf/bitnami/bitnami.conf

<VirtualHost _default_:80>
  DocumentRoot "/opt/bitnami/apache2/htdocs"
  <Directory "/opt/bitnami/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All <---- 여기
    <IfVersion < 2.3 >
      Order allow,deny
      Allow from all
    </IfVersion>
    <IfVersion >= 2.3 >
      Require all granted
    </IfVersion>
  </Directory>

변경 사항을 적용한 후 Apache를 다시 시작한다.

[참고사이트]

Leave a Reply

error: Content is protected !!