웹마스터 팁
[수정1차] XE 1.7.X 용 nginx rewrite rule 입니다!
2013.02.21 18:52
# reserve XE Layout Template Source File (*.html)
rewrite ^/(layouts|m.layouts)/(.+)/(.+)\.html$ /index.php last;
# conf, query, schema
rewrite ^/(modules|addons|widgets)/(.+)/(conf|queries|schemas)/(.+)\.xml$ /index.php last;
# static files
if (!-f $request_filename) {
rewrite ^/(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*) /files/$2/$3 last;
}
if (!-f $request_filename) {
rewrite ^/(.+)/(files|modules|widgets|widgetstyles|layouts|m.layouts|addons)/(.*) /$2/$3 last;
}
# rss , blogAPI
rewrite ^/(rss|atom)$ /index.php?module=rss&act=$1 last;
rewrite ^/([a-zA-Z0-9_]+)/(rss|atom|api)$ /index.php?mid=$1&act=$2 last;
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)$ /index.php?vid=$1&mid=$2&act=$3 last;
# trackback
rewrite ^/([0-9]+)/(.+)/trackback$ /index.php?document_srl=$1&key=$2&act=trackback last;
rewrite ^/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ /index.php?mid=$1&document_srl=$2&key=$3&act=trackback last;
rewrite ^/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ /index.php?vid=$1&document_srl=$2&key=$3&act=trackback last;
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ /index.php?vid=$1&mid=$2&document_srl=$3&key=$4&act=trackback last;
# administrator page
rewrite ^/admin/?$ /index.php?module=admin last;
# document permanent link
rewrite ^/([0-9]+)$ /index.php?document_srl=$1 last;
# mid link
if (!-d $request_filename) {
rewrite ^/([a-zA-Z0-9_]+)/?$ /index.php?mid=$1 last;
}
# mid + document link
rewrite ^/([a-zA-Z0-9_]+)/([0-9]+)$ /index.php?mid=$1&document_srl=$2 last;
# vid + mid link
if (!-d $request_filename) {
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ /index.php?vid=$1&mid=$2 last;
}
# vid + mid + document link
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)$ /index.php?vid=$1&mid=$2&document_srl=$3 last;
# mid + entry title
rewrite ^/([a-zA-Z0-9_]+)/entry/(.+)$ /index.php?mid=$1&entry=$2 last;
# vid + mid + entry title
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)$ /index.php?vid=$1&mid=$2&entry=$3 last;
# ?
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_.-]+)$ /index.php?act=route&vid=$1&type=$2&identifier=$3 last;
에서 아래로 수정되었으니 참고바랍니다. (드디어 마지막줄 주석에 대한 의문을 풀엇답니다. ㅎㅎ)
# reserve XE Layout Template Source File (*.html)
rewrite ^/(layouts|m.layouts)/(.+)/(.+)\.html$ /index.php last;
# conf, query, schema
rewrite ^/(modules|addons|widgets)/(.+)/(conf|queries|schemas)/(.+)\.xml$ /index.php last;
# static files
if (!-f $request_filename) {
rewrite ^/(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*) /files/$2/$3 last;
}
if (!-f $request_filename) {
rewrite ^/(.+)/(files|modules|widgets|widgetstyles|layouts|m.layouts|addons)/(.*) /$2/$3 last;
}
# rss , blogAPI
rewrite ^/(rss|atom)$ /index.php?module=rss&act=$1 last;
rewrite ^/([a-zA-Z0-9_]+)/(rss|atom|api)$ /index.php?mid=$1&act=$2 last;
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)$ /index.php?vid=$1&mid=$2&act=$3 last;
# trackback
rewrite ^/([0-9]+)/(.+)/trackback$ /index.php?document_srl=$1&key=$2&act=trackback last;
rewrite ^/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ /index.php?mid=$1&document_srl=$2&key=$3&act=trackback last;
rewrite ^/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ /index.php?vid=$1&document_srl=$2&key=$3&act=trackback last;
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ /index.php?vid=$1&mid=$2&document_srl=$3&key=$4&act=trackback last;
# administrator page
rewrite ^/admin/?$ /index.php?module=admin last;
# document permanent link
rewrite ^/([0-9]+)$ /index.php?document_srl=$1 last;
# mid link
if (!-d $request_filename) {
rewrite ^/([a-zA-Z0-9_]+)/?$ /index.php?mid=$1 last;
}
# mid + document link
rewrite ^/([a-zA-Z0-9_]+)/([0-9]+)$ /index.php?mid=$1&document_srl=$2 last;
# vid + mid link
if (!-d $request_filename) {
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ /index.php?vid=$1&mid=$2 last;
}
# vid + mid + document link
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)$ /index.php?vid=$1&mid=$2&document_srl=$3 last;
# mid + entry title
rewrite ^/([a-zA-Z0-9_]+)/entry/(.+)$ /index.php?mid=$1&entry=$2 last;
# vid + mid + entry title
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)$ ^/index.php?vid=$1&mid=$2&entry=$3 last;
# shop + vid / [category|product] / identifier
if (!-f $request_filename) {
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_.-]+)$ /index.php?act=route&vid=$1&type=$2&identifier=$3 last;
}
댓글 15
-
컴토피아
2013.02.21 19:16
-
CM(OEZ)
2013.02.21 19:17
ㅎㅎ 방금 문법 조금 더 수정하고 다듬어두었습니다.
nginx 에서는 아파치의 mod_rewrite 모듈 문법이 적용되지 않아 nginx 서버에 맞춰 직접 컴파일 해야합니다.
-
컴토피아
2013.02.21 19:19
그렇군요... 이 기회에 apache랑 nginx rewrite 문법 함 공부해봐야겠습니다ㅎㅎ
-
CM(OEZ)
2013.02.21 19:21
ㅎㅎ 이거말고 1.4(xzet용) 1.5용 1.7용 총 3가지 다올려두었어요 구경하시면 뭐가 쪼금씩다른걸 보실수있을꺼에요.. .ht.... 파일이랑 비교해보세요.. 그럼 공부끝임..
-
컴토피아
2013.02.21 19:22
감사합니다 :)
함 봐야겠습니다ㅋㅋ
-
XE러버
2013.02.21 20:39
감사합니다.
-
WhoamI
2013.06.05 08:14
rewrite 가 어떤 페이지를 특정 주소로 이동되게 해주는 것인가요?
-
OEZ
2013.06.05 14:03
xe 기준에서보면 짧은주소기능을 사용하기위해서는 꼭 필요한 존재입니다.
-
KTK
2013.06.06 13:19
참고 하시라고 댓글 달아둡니다.. 전에 다른분께서 올리신 1.7.X용 리라이트룰을 사용하시면 카페쪽의 리라이트가 되지 않으니 반드시 OEZ님의 리라이트룰을 사용하시기바랍니다^^
-
OEZ
2013.06.06 19:07
ㅎㅎ 전 1.4 1.5 1.7용 리라이트룰을 분석해서 적용해놔습니다.
다른분들은 다 똑같다면서 써도 상관없다고하지만 분명달랏는데... 카페쪽이 다른거군요.ㅋㅋ
-
이태워니안지영
2013.06.18 23:56
저는 윈도우 서버 사용자인데요 혹 짧은 주소가 적용되는 가장 최신 버전용인 Your version: 1.7.3.4에서 적용하고 있는 web.conf 파일이나 리눅스 사용자용 .htaccess 파일이 있으면 공유 가능할까요?
.htacess는 위도우 서버에서 불러오기를 할 수 있어서요.
아님 위의 문법들을 윈도우 서버용으로 통역?이랄까요?? 해주는 곳이 있을까요?
감사합니다~~~~
-
OEZ
2013.06.19 11:58
윈도우서버 리눅스 서버 문제가아니라
nginx 냐 apache냐 입니다.
nginx 에서도 .ht 먹는 소스가 있긴하지만 .ht 대부분이 apache에 맞춰져있어서 따로 적용을 하는겁니다.
++ 위문법은 apache .ht 를 nginx 문법으로 개량한거에요..
윈도우서버 리눅스서버는 상관없습니다.
도 web.conf 라고하셧는데;; 먼말씀이신지 잘모르겟으나 아마 nginx.conf 의 부가 conf 파일을 말씀하시는거 같은데.
말씀하신건 서버 성능이나 컴파일상황에따라 ++ 내용이 머가 필용한지 정확하게 표기 안해주시기떄문에 못올려드리고 ㅇ그런건 서버관리자니께서 직접 ㅈ짜여야합니다.
그럼 수고하세요~~~~
-
이태워니안지영
2013.06.20 00:45
네 "++ 위문법은 apache .ht 를 nginx 문법으로 개량한거에요."
알고 있습니다~
그럼 최신 버전에 같이 따라오는 원본 .htaccess을 개량한 건가요?
아님 원본 htaccess을 짧은 주소가 되게 적용된 것을 다시 nginx로 개량 한 것인지요?
저는 최신 버전 집 파일에 들어있는 .htaccess 파일을 윈도우 서버에서 import를 시켜서 적용을 했는데 짧은 주소가 더이상 안 나오고 길게 표시되고 있는 현상이에요.
만약 짧은 주소가 되는 최신 버전에 맞는 .htaccess 파일을 갖고 계시다면 이걸로 import를 시켜서 제 윈도우 서버에 적용을 할 수가 있거든요.
인터넷에 .htaccess을 nginx에 맞게 컨버팅 해주는 툴은 보이는데 그 반대는 안보여서요...
윈도우에서 쓰이는 파일 형식은 web.config이구요. 제가 윈도우 서버 관리잔데;;;; 이거 문법 바꾸는 건 임포트 하는 것만 알고 있거든요...
암튼 감사합니다~~~
-
해피지영
2013.06.21 00:55
해결했어요~라르게덴님의 entry addon과 함께 사용하는데 적합한 .htaccess 파일을 얻어서 임포트 했고 정상적으로 작동합니다. 혹시 코드 필요하신 분은 쪽지 주세요~^^ OEZ님 감사합니다~~~관심과 댓글에!
-
세상의모든계산기
2015.01.11 17:19
https://github.com/xpressengine/xe-core/wiki/Nginx-rewite-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
Nginx rewite 설정하기
Nginx용 파일이라고 적혀있는걸 보니 확실히 apache와 rewrite 문법은 다른가 보군요... 이런 문서가 있어 Nginx로 전향하는데에 대한 두려움이 조금 사라지는 것 같네요.. 좋은 팁 감사하고 나중에 차차 적용해보아야겠습니다ㅎ