centos7 apache, php, mysql 설치를 완료하였다. 아무이상 없이 잘 동작중이었으나, 난 욕심이 생겨서, apache에서 rewrite 기능을 사용해보고 싶었다.
![](https://www.itopening.com/wp-content/uploads/2019/12/rewrite-rule-설정-1.gif)
기본적으로 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 로 설정해줘야된다.
그림으로 보면 쉽게 알 수 있다.
![](https://www.itopening.com/wp-content/uploads/2019/12/rewrite-rule-설정-2.png)
![](https://www.itopening.com/wp-content/uploads/2019/12/rewrite-rule-설정-3.png)
이런식으로 httpd.conf 파일 환경설정을 변경해줘야 된다. 하지만 이게 끝이 아니다. .htaccess rewrite 설정이 정상적으로 작동하는지 확인이 필요하다.
그리고 httpd-vhost.conf 파일을 열어서 테스트용 도메인을 설정해준다.
![](https://www.itopening.com/wp-content/uploads/2019/12/rewrite-rule-설정-4.png)
도메인이 연결된 디렉토리에 .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>
![](https://www.itopening.com/wp-content/uploads/2019/12/rewrite-rule-설정-5.png)
마지막으로 apache 를 재시작 해주면 성공이다.
/usr/local/apache/bin/apachectl restart
또는
systemctl restart httpd