apache .htaccess rewrite rule 설정 사용 방법

centos7 apache, php, mysql 설치를 완료하였다. 아무이상 없이 잘 동작중이었으나, 난 욕심이 생겨서, apache에서 rewrite 기능을 사용해보고 싶었다.

기본적으로 apache 환경설정에 제공되어있지만, 몇가지 설정이 필요하기 때문에 문제 없이 사용할수 있을 것이다. 방법은 아래와 같이 진행하면 된다.

Apache .htaccess rewrite rule 설정

apache 환경설정 파일이 존재하는 곳으로 이동.

cd /usr/local/apache/conf/

아래와 같이 설정값을 넣어준다.

vi httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so

<IfModule mod_rewrite.c>
rewriteEngine On
</IfModule>

<Directory />
    AllowOverride All
</Directory>

TIP : AllowOverride none 으로 설정되어있으면, RewriteEngine not allowed here .htaccess 이런에러와 함께 정상적으로 안된다. 꼭 All 로 설정해줘야된다.

그림으로 보면 쉽게 알 수 있다.

이런식으로 httpd.conf 파일 환경설정을 변경해줘야 된다. 하지만 이게 끝이 아니다. .htaccess rewrite 설정이 정상적으로 작동하는지 확인이 필요하다.

그리고 httpd-vhost.conf 파일을 열어서 테스트용 도메인을 설정해준다.

도메인이 연결된 디렉토리에 .htaccess 파일을 생성해서 아래와 같이 구문을 입력해줘야된다.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^zero.dslee.kr [NC]
RewriteRule ^(.*)$ http://www.naver.com/$1 [L,R=301,NC]
</IfModule>

마지막으로 apache 를 재시작 해주면 성공이다.

/usr/local/apache/bin/apachectl restart

또는

systemctl restart httpd

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다