728x90
1. Apache Rewrite Module
Apache는 서버 역할을 할 수 있는 최소한의 코어 만으로 이루어져 있고, 추가적인 기능을 사용할 때에는 모듈을 활성화 시켜야 한다. Rewrite 기능을 사용하기 위해서는 Rewrite 모듈을 활성화 해야 한다.
2. mod_rewrite 활성화
httpd.conf 파일에 직접 추가 한다.
LoadModule rewrite_module modules/mod_rewrite.so
* 설정 후 Apache 재기동 필요
3. 서버 변수
변 수 | 내 용 |
HTTPS | TLS/SSL 사용 여부 설정, on/off 값으로 설정 |
SERVER_NAME | www.google.com과 과 같이 서버 이름 설정 |
REQUEST_URI | www.google.com/index.html 처럼 index.html 부분을 의미 |
[R] | HTTP의 리다이렉트를 수행하는 Flag. Flag 다음으로 나오는 추가적인 RewriteRule이 있다면, Invalid URI 에러가 날 수 있다. |
[L] | 마지막 RewriteRule임을 의미 |
[NC] | 대소문자 구분하지 않음 |
4. 설정 예시
4.1. Rewrite 설정 위치
Virutal Host 및 Server Config안에서 설정 할 수 있다.
4.1.1. Server Config 설정 예시
전체 서비스에 모두 적용된다.
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L]
</IfModule>
4.1.3. Virtual Host 설정 예시
해당 서비스 도메인에만 적용 된다.
<VirtualHost *:80>
DocumentRoot "/sw/web/apache/htdocs"
ServerName www.test.co.kr
ServerAlias www.test1.co.kr
ErrorLog "/logs/apache/test/error.log"
CustomLog "/logs/apache/test/access.log" combined
ErrorDocument 404 /errors/404.html
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L]
</VirtualHost>
4.2. Http → Https
http로 들어오는 서비스를 모두 Https로 변경
RewriteCond %{HTTPS} off
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L]
4.3. Request URI 특정 확장자 403 응답
.txt 및 htm 확장자 요청 시 403으로 응답 예시
RewriteCond %{REQUEST_URI} ^/(.)+\.(htm|txt)$
RewriteRule . – [F]
4.4. 특정 URI를 제외하는 설정
/api로 들어오는 요청은 리다이렉트 안되게 설정하는 예시
RewriteCond %{REQUEST_URI} !^/api
RewriteRule .* https://www.test.co.kr/$0 [R]
/api/*/mip 패턴 외에는 403 응답하게 설정하는 예시
RewriteCond %{REQUEST_URI} !/api/(.*)/mip/(profile|image|vp|error)
RewriteRule . – [F]
4.5. WEB-INF, META-INF URL 포함 시 503 응답
RewriteCond %{SERVER_NAME} www.test.co.kr
RewriteCond %{REQUEST_URI} /WEB\-INF [OR]
RewriteCond %{REQUEST_URI} /META\-INF
RewriteRule . /503.html
4.6. 파일 혹은 디렉터리가 아닌 경우 /kr/index.html 호출
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/kr/.*$ /kr/index.html [L]
4.7. 요청온 URL 그대로 호출
RewriteCond %{REQUEST_URI} ^/kr
RewriteRule ^/kr.* $0 [L]
728x90
'WEB > Apache' 카테고리의 다른 글
[Apache] 가상 호스트 (0) | 2025.03.11 |
---|---|
[Apache] Monitoring (0) | 2024.09.25 |
[Apache] 에러 모음집 (0) | 2024.05.08 |
[Apache] WAS 연동 (0) | 2024.04.22 |
[Apache] Default Config (0) | 2024.02.19 |