[apache] rewrite ¼³Á¤ ¼³¸í
1. mod_rewrite reference
http://httpd.apache.org/docs/2.0/en/mod/mod_rewrite.html
2. URL Rewriting Guide
http://httpd.apache.org/docs/2.0/ko/misc/rewriteguide.html
or
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
¾Æ·¡ ³»¿ë Ãâó: http://www.gnunix.co.kr/4
.htaccess - RewriteCond, RewriteRule
.htaccess ¿¡ ´ëÇؼ ¾Ë°í½Í¾ú´Ù. ¾à°£ÀÇ °øºÎ°¡ ÇÊ¿äÇß´Ù. °Ë»öÇß´Ù.
¾ø´Ù...
¾ÆÁÖ °£´ÜÇÑ ¿¹Á¦¸¸ ³ª¿ÍÀְųª ÀÌ·²°æ¿ì Àú·² °æ¿ì¸¸ ³ª¿ÍÀÖ´Ù.
Á¶±ÝÀÌ¶óµµ ÀÚ¼¼È÷ µé¾î°¡·Á ÇÑ ³»¿ëÀº ã±â Èûµé¾ú´Ù.
±×·¡¼ ³»°¡ ÁغñÇß´Ù.
ÀÌ°Å.. ¿ø... ¿Ï¼ºÇÒ떄Âë ¶Ç µýµ¥¼ ¸ÕÀú ³ª¿À´Â°Å ¾Æ´Ñ°¡ ¸ô¶ó ¤¾¤¾
ÀÎÅͳݿ¡ Á¤º¸°¡ ³Ê¹«³ªµµ ºÎÁ·Çß´Ù.
¿µ¹®»çÀÌÆ®¿Ü¿£-
ÀÌÇÏ ¸ðµÎ Apache»çÀÌÆ®¸¦ Âü°íÇß´Ù.
1. .htaccess
.htaccess
±×·¡ ¸Â´Ù. ¾Õ¿¡ .ÀÌ ºÙÀ¸¸é ¼û°ÜÀÖ´Â ÆÄÀÏÀÌ´Ù.
¿¾îº¸ÀÚ.
{code}
php_flag register_globals on
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^(www)\.gnunix\.co\.kr$ [NC]
RewriteRule (.*) http://www.gnunix.co.kr/$1 [R=301,L]
ErrorDocument 401 http://www.gnunix.co.kr/401error.html
{code}
°£´ÜÇÏ°Ô ¿äÁ¤µµ?
³ RewriteCond¿Í RewriteRule¿¡ ´ëÇؼ¸¸ ¾ð±ÞÇغ¸·ÁÇÑ´Ù.
RewriteEngine OnÀº Rewrite¸ðµâÀÇ »ç¿ëÀ» À§ÇØ ±âº»ÀûÀ¸·Î OnÀ¸·Î ¼³Á¤Çصδ°ÍÀÌ ÁÁ´Ù.
RewriteBase´Â ±âº»ÀûÀ¸·Î .htaccess°¡ À§Ä¡¾È ¹°¸®Àû °æ·Î·Î ¼³Á¤ÇÏÁö¸¸ RewriteÀÇ ¾²ÀÓÀÌ ³Ê¹«
±¤¹üÀ§Çϱ⿡ ´Ù¸£°Ô ¾²ÀÌ´Â °æ¿ìµµ ¸¹´Ù.
±× ¿Ü¿¡ RewriteOptions, RewriteLog, RewriteLogLevel, RewriteLock, RewriteMapµîÀº
½ÉÈ°úÁ¤À̹ǷΠÃë±ÞÇÏÁö ¾Ê½À´Ï´Ù ^^;;
ÀÌ ±ÛÀº ¿Ïº®ÇÏÁö ¾Ê´Ù. Àß¾´ ±Ûµµ ¾Æ´Ï°í Àß µÇ¾îÀÖ´Â ±Ûµµ ¾Æ´Ï´Ù.
ÇÏÁö¸¸ ´ç½ÅÀÌ ÄÄÇ»ÅÍ¿¡ ´ëÇÑ ¿Á¤ÀÌ ÀÖ°í ±×¸¸ÅÀÇ ³ë·ÂÀÌ ÀÖ¾úÀ¸¸ç µ¶Çп¡ Àç´ÉÀÌ ÀÖ´Ù¸é ÀÌÁ¤µµÀÇ
±Û·Îµµ ¸¸Á·ÇÒ°ÍÀ̶ó ¹Ï´Â´Ù. (¾µµ¥¾ø´Â Àâ´ãÀÌ ³Ê¹« ¸¹Àº°Å 뺴°í... ¤Ñ¤Ñ;;)
ÀÌÁ¦ º»·ÐÀ¸·Î °í°í-
Rewrite¸ðµâÀº URL Rewrite ¿£ÁøÀϱî?
2. RewriteCond¿Í RewriteRuleÀÇ ±âº» ÇüÅÂ
RewriteCond¿Í RewriteRuleÀÇ ±âº» ÇüÅ´ ÀÌ·¸´Ù.
{code}
RewriteCond TestString CondPattern
RewriteRule Pattern Substitution
{code}
RewriteCond´Â RewriteRuleÀ» À§ÇØ Á¸ÀçÇϱ⵵ ÇÏÁö¸¸ RewriteRuleÀº RewriteCond¸¦ À§ÇØ Á¸ÀçÇϱ⵵ ÇÑ´Ù.
ÇÏÁö¸¸ ¼ø¼´Â °ÅÀÇ ´ëºÎºÐ CondÈÄ¿¡ RuleÀÌ ¿Â´Ù.
Cond´Â »ý·«ÇÏ°í Rule¸¸ Àִ°æ¿ìµµ ¸¹´Ù.
±âº»ÇüÅ´ ÀÌ·¯ÇÏÁö¸¸ RewriteCond¸¸ ÀÖÀ»¼öµµ ÀÖ°í RewriteRule¸¸ ÀÖÀ»¼öµµ ÀÖÀ¸¸ç µÑ´Ù ¿©·¯°³Àϼöµµ
ÀÖ°í µÑÁß Çϳª¸¸ ¿©·¯°³Àϼöµµ ÀÖ´Ù. ¼ø¼µµ ¸¾´ë·Î¶ó¼ ¾öû³ª°Ô ´Ù¾çÇÑ ÀÀ¿ëÀÌ °¡´ÉÇÏ´Ù ¤»
3. ó¸® °æ·Î(È帧)
Á¦ÀÏ ¸ÕÀú RuleÀÇ Pattern¿¡ ¾î±ß³ªÁö ¾Ê´Â´Ù¸é CondÀÇ TestStringÀ¸·Î °¡¼ Á¶°Ç°Ë»ç¸¦ ½ÃÀÛÇÑ´Ù.
±×ÈÄ CondPatternÀ» Áö³ª SubstitutionÀ¸·Î 󸮵Ǿî Á¶°Ç¿¡ ¸¸Á·ÇÏ°Ô µÈ´Ù.
´ÙÀ½À» º¸ÀÚ
{code}
...
RewriteRule Pattern Substitution
RewriteCond TestString CondPattern
RewriteRule Pattern Substitution
RewriteRule Pattern Substitution
...
{code}
À§ÀÇ °æ¿ì Cond¿Í RuleÀÌ ¸· ½áÀÖ´Ù ¤» µÎ°³ ÀÌ»óÀÇ RuleÀÌ ÀÖÀ»°æ¿ì À§ RuleÀÌ Ã³¸®,
Àû¿ëµÈ °á°ú°¡ ´Ù½Ã µÎ¹ø° Rule¿¡ Àû¿ëµÈ´Ù. ¶Ç ¾Æ·¡ RuleÀÌ ÀÖ´Ù¸é ±× °á°ú°¡ ´Ù½Ã °Ë»çµÉ°ÍÀÌ´Ù.
ȤÀº. À§ÀÇ Á¶°Ç¿¡ ¸ÂÁö ¾Ê´Â °ªÀ̶ó¸é ´ÙÀ½ Rule·Î ³Ñ±ä´Ù.
ÀÌÇϺÎÅÍ´Â ÆÐÅÏ, ´ë¿ë(´ëü), Á¶°ÇÆÐÅϵîÀÇ ÇѱÛȸ¦ ¼¯¾î ¾²°Ú´Ù.
Cond´Â Á¶°ÇÀÇ ¾àÀÚÀÌ°í RuleÀº ±×´ë·Î ±ÔÄ¢, ¹ýÀÌ´Ù.
4. Ư¼ö ¹®ÀÚ
ÇÁ·Î±×·¡¹ÖÀ» ÇÏ¸é¼ ±× ÇÁ·Î±×·¥ ³»ºÎ Äڵ峪 ¸í·É¾î·Î ¾²ÀÌ°í ÀÖ¾î¼ ¾²Áö ¸øÇÏ´Â ¹®ÀÚ°¡ ¸¹´Ù.
¿©±â¼µµ ¸¶Âù°¡ÁöÀÌ´Ù. ÇÏÁö¸¸ ¾îµð¼³ª Á¸ÀçÇÏ´Â Escape¹®ÀÚ ÀÖÀ¸´Ï ¿©±â¼´Â "\"(¿ª½½·¡½¬(¿ø))Ç¥½Ã°¡
¾²ÀδÙ. º¸Åë .ÀÌ À߸ø¾²ÀÏ°ÍÀ» ´ëºñÇÏ¿© \.·Î ¾²´Â°Ô º¸ÅëÀÌ´Ù.
¿¹ : gnunix.co.kr ==> gnunix\.co\.kr
ÁÖ·Î Á¡.À̳ª ´ë°ýÈ£[], °ýÈ£()µî¿¡ ¾²ÀδÙ.
ÀÌ´Â Cond¿¡¸¸ Àû¿ëµÇ´Â À̾߱âÀÌ´Ù.
5. RewriteCond
RewriteCondÀÇ ±âº» ±¸¹®Àº ÀÌ¹Ì À§¿¡¼µµ ³ª¿Ô´Ù.
±×°÷ Test½ºÆ®¸µºÎºÐ¿¡ $NÀ̳ª %NÀÌ ¾²ÀÎ´Ù¸é ¿ªÂüÁ¶ ±â´ÉÀ» Á¦°øÇϰԵȴÙ.
¿©±â¼ NÀº (1<=N<=9)ÀÌ´Ù.
$NÀÇ °æ¿ì ÇöÀç 󸮵ǰíÀÖ´Â Rule¿¡¼ °¡¸£Å°°í ÀÖ´Â ÆÐÅÏÀÌ ±×·ìÀ¸·Î ¹¿© Á¦°øµÈ´Ù.
$NÀ» ÇϳªÀÇ º¯¼öó·³ »ç¿ëÇÒ¼ö ÀְԵǴ°ÍÀÌ´Ù.
¾Æ·¡µµ ³ª¿ÍÀÖÁö¸¸ °ýÈ£·Î ±×·ìÀ» ¹Àº ºÎºÐÀÌ º¯¼ö·Î »ç¿ëµÈ´Ù.
{code}
RewriteCond %{HTTP_HOST} ^[^.]+\.gnunix\.co\.kr$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.gnunix\.co\.kr(.*) /home/$1/htdocs$2
{code}
À§ ¿¹Á¦ÀÇ °æ¿ì µµ¸ÞÀÎ ¾ÕÀÇ URI¸¦ $1·Î ±× µÚ °æ·Î¸¦ $2·Î ÁöÁ¤ÇÏ¿© ƯÁ¤ µð·ºÅ丮ÀÇ
³»¿ëÀ» Àеµ·Ï ÇÏ´Â ³»¿ëÀÌ´Ù.
ÀÌ°ÍÀ» ª°Ô ÇÑÁÙ·Î °íÃĺ¸ÀÚ¸é
{code}
RewriteRule ^([^.]+)\.gnunix\.co\.kr(.*) /home/$1/htdocs$2
{code}
¿äÁ¤µµ?
%NÀº ÇöÀç ó¸®ÁßÀÎ Cond¿¡¼ °¡¸£Å°°íÀÖ´Â Á¶°Ç°ú ÀÏÄ¡ÇÑ ÆÐÅÏÀÌ ±×·ìÀ¸·Î ¹¿© Á¦°øµÈ´Ù.
ÀÌ°Ç Àß ¾È¾²À̴°Ͱ°¾Æ¼ Á¤¸» Àß¾²ÀÌ´Â ´ÙÀ½À¸·Î Æо²~
%{Name}ÀÇ °æ¿ì ÇØ´ç ¼¹öÀÇ º¯¼ö¸¦ °¡Áö°í ¿Ã¼öÀÖ´Ù.
º¯¼öÀÇ °³¼ö´Â Á¤¸» ¾öû³ª°Ô ¸¹´Ù. ÇÏÁö¸¸ ÀÚÁÖ ¾²ÀÌ´Â º¯¼öµéÀº ¾Æ·¡¸¦ ÅëÇؼ Çѹø È®ÀÎÇغ¸¼¼¿ä ^^
http://gnunix.cafe24.com/study/
(À§ ¸µÅ©°¡ ¾ðÁ¦ Á×À»Áö´Â ¹ÌÁö¼öÀÔ´Ï´Ù ^^;;;)
6. CondPattern
CondPattern¿¡¼ ¾²ÀÌ´Â ³»ºÎ ¸í·É¾î? Ư¼ö¸í·É¾î?µîÀ» ¾Ë¾Æº¸µµ·ÏÇÏÀÚ
{code}
-d => µð·ºÅ丮¸¦ ¶æÇÑ´Ù.
°á·ÐÀûÀ¸·Î Test½ºÆ®¸µÀÌ µð·ºÅ丮¸¦ °¡¸®Å°°Å³ª Æ÷ÇÔÇÏ°í ÀÖÀ»¶§ 󸮵ȴÙ.
-f => ÆÄÀÏÀ» ¶æÇÑ´Ù.
Test½ºÆ®¸µÀÌ ÆÄÀÏÀ» °¡¸®Å°°Å³ª Æ÷ÇÔÇÏ°í ÀÖÀ»¶§ 󸮵ȴÙ.
-l => ½Éº¼¸¯¸µÅ©¸¦ ¶æÇÑ´Ù.
Test½ºÆ®¸µÀÌ ½Éº¼¸¯¸µÅ©¸¦ °¡¸®Å°°Å³ª Æ÷ÇÔÇÏ°í ÀÖÀ»¶§ 󸮵ȴÙ.
½Éº¼¸¯ ¸µÅ©°¡ ¹¹³Ä°í ¹°À¸½Å´Ù¸é ¸®´ª½º³ª À¯´Ð½º¸¦ °øºÎÇغ¸¼¼¿ä ^^ ¶ó°í ´äÇÏ°í ½Í´Ù^^
±×¸®°í ´À³¦Ç¥(!)´Â ºÎÁ¤À» ¶æÇÑ´Ù.
{code}
{code}
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://test.gnunix.co.kr/$1
{code}
À§ÀÇ ¿¹Á¦´Â Request³»¿ëÀÌ µð·ºÅ丮³ª ÆÄÀÏÀ» °¡¸£Å°°í ÀÖÁö ¾ÊÀ»°æ¿ì ÀúÂÊ »çÀÌÆ®·Î
µ¹¸®¶ó´Â ¶æ. ^^
$1·Î ÇÏÀ§ÁÖ¼Ò´Â À¯ÁöÇÏ·ÁÇÏ°í ÀÖ½À´Ï´Ù ^^
7. [Flag]
¶óÀθ¶´Ù Flag¶ó ºÒ¸®¿ì´Â ±ê¹ßÀ» ´Þ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÏÁ¾ÀÇ ¿É¼ÇÀ¸·Î ÀÛ¿ëÇÕ´Ï´Ù ^^
{code}
F => 403¿¡·¯ ForbiddenÆäÀÌÁö·Î µÈ´Ù.
L => Last¶ó´Â ¶æÀÔ´Ï´Ù. À§ÀÇ CondµéÀº ¿©±â±îÁö¸¸ Àû¿ëµÈ´Ù
¾Æ·¡ºÎÅÍ´Â »õ·Î ½ÃÀÛ µÇ°ÚÁö¿ë~
N => »õ·Î¿î RuleÀÌ ½ÃÀ۵ȴٴ ±ê¹ß.
QSA => CondÀÇ ´ë¿ëÀ» Áö³ °á°ú¿¡ µ¡ºÙÀδÙ.
NE => OutµÉ °ª¿¡ Ư¼ö¹®ÀÚ°¡ HexCode·Î µÇ¾î Æ÷ÇԵǾîÀִ°æ¿ì
R => ¸®´ÙÀÌ·º¼Ç. ¹«Á¶°Ç ³Ñ±ä´Ù. µÚ ÁÖ¼Ò·Î ³Ñ±ä´Ù´Â ¶æÀÌÁö¿ä ^^
NC => ´ë¼Ò¹®ÀÚ ±¸º°¾ø´Ù´Â ¶æ.
OR => ÇÁ·Î±×·¡¹ÖÀÇ or¿Í ºñ½ÁÇÏ´Ù.
{code}
¾Æ·¡¸¦ Âü°íÇϽÃÁÒ ^^
{code}
RewriteCond %{REMOTE_HOST} ^gnunix.* [OR]
RewriteCond %{REMOTE_HOST} ^<a href="#" class="key1" onclick="openKeyword('/keylog/GNUNIX'); return false">GNUNIX</a>.* [OR]
RewriteCond %{REMOTE_HOST} ^INKOREAGUY.* [NC]
RewriteRule ^(.*)$ http://www.gnunix.co.kr/$1 [R,L]
{code}
gnunix³ª GNUNIX³ª INKOREAGUY³ª inkoreaguy·ÎºÎÅÍ Á¢¼ÓÇÑ Á¢¼Ó¿¡ ´ëÇÏ¿© ¸®´ÙÀÌ·ºÆ®ÇÑ´Ù.
http://www.gnunix.co.kr/ ·Î Á¢¼ÓÇϰԵȴÙ. º¸Åë IPÁÖ¼Ò¸¦ Àû°ÔµÇ°Ú´Ù.
8. RewriteRule
¿©±âºÎÅÍ´Â ¾ÆÁÖ °£´Ü°£´ÜÇÏ°Ô... ¤Ñ¤Ñ;
ÅؽºÆ®
{code}
. => ?°ú °°½À´Ï´Ù. ¹«¾ùÀ̵ç ÇϳªÀÇ ¹®ÀÚ¸¦ ¶æÇÕ´Ï´Ù. A°¡ µÉ¼öµµ ÀÖ°í Z°¡ µÉ¼ö ÀÖ´Ù. ¹Ýµå½Ã ÇѱÛÀÚ.
[A] => ¿ª½Ã ÇϳªÀÇ ¹®ÀÚ°¡ ¿Ã¼ö ÀÖ´Ù´Â ¶æ. ex) a[eo]t => aot ȤÀº aet
[^A] => ¹®ÀÚ´Â ¿Ã¼ö ¾ø´Ù´Â ¶æ~ AºÎÅÍ Z±îÁö~
? => 0°³ ¶Ç´Â 1°³ÀÇ ÅؽºÆ®.
* => 0°³ ¶Ç´Â 1°³ ÀÌ»óÀÇ ÅؽºÆ®.
+ => 1°³ ÀÌ»óÀÇ ÅؽºÆ®. 0Àº µÉ¼ö ¾ø´Ù.
{code}
±×·ì
{code}
(ÅؽºÆ®) => À§ÀÇ ÅؽºÆ®¿¡ ¼ÓÇÑ ¼¼°¡Áö¸¦ Á¶ÇÕÇÏ¿© ¾µ¼ö ÀÖ´Ù
¿¹·Î (..)´Â µÎ±ÛÀÚ¶ó´Â °ÅÁö¿ä ^^
¸î¹ø° ±×·ìÀ̳Ŀ¡ µû¶ó¼ À§¿¡ ¼³¸íÇÑ $NÀÇ º¯¼ö·Î ºÒ·¯ ¾µ¼öÀÖ´Ï´Ù.
{code}
Anchors
{code}
^ => ÁÙÀÇ ½ÃÀÛÀ» ³ªÅ¸³½´Ù ex) ^a => a·Î ½ÃÀÛ
$ => ÁÙÀÇ ³¡À» ¸»ÇÑ´Ù. ¤§¤¼) a$ => a·Î ³¡
{code}
ÀÌÁ¦ ³¡¸¶Ãľ߰ڴÙ.
³Ê¹« Èûµé´Ù ¤»¤»¤»
±ÛÀÌ ³Ê¹« Áö·çÇØÁöÁö¾Ê¾ÒÀ»±î °ÆÁ¤µÈ´Ù.
¾Æ·¡ ÄÚ¸àÆ® ´Þ¾ÆÁֽøé Á¶±Ý¾¿ Á¶±Ý¾¿ Á¶Ä¡¸é¼ ´õ ³ªÀº ¸ð½ÀÀ¸·Î °¡°í½Í½À´Ï´Ù-
p.s
.htaccessÆÄÀÏÀº µð·ºÅ丮(Æú´õ)¸¶´Ù Á¸Àç ÇÒ¼öÀÖ´Ù. ±×¸®°í µ¿ÀÛÇÑ´Ù.
.htaccess´Â ¿ÕÀÌ´Ù. HTTPÇÁ·ÎÅäÄÝ·Î URLÀ» ÅëÇÏ¿© µé¾î¿À´Â ¸ðµç Á¢±Ù¿¡ ´ëÇÏ¿© ´Ù Áö¸¾´ë·Î´Ù.
À̸¦ È°¿ëÀº ½Ç·Î ¹«±Ã¹«ÁøÇÏ´Ù *_*
Âü°í, Ãâó : Apach.org
p.s2
2008³â 03¿ù 19ÀÏ
±âÁ¸ÀÇ gnunix.co.kr/tc¿¡¼ gnunix.co.kr·Î º¯°æÇÏ¿´´Ù.
tcÆú´õ³»ÀÇ ³»¿ëÀ» ¹ÛÀ¸·Î ¿Å°Ü¿Ô´Ù.
¶§¹®¿¡ ±âÁ¸ÀÇ tc·Î Á¢¼Óµéµµ co.kr·Î ¿Å°Ü¿Í¾ßÇß´Ù.
rootÀÇ .htaccessÀÇ ³»¿ëÀ» º¸ÀÚ
{code}
RewriteEngine On
RewriteBase /
Redirect /tc http://www.gnunix.co.kr
RewriteCond %{HTTP_HOST} ^gnunix\.co\.kr$ [NC]
RewriteRule ^(.*)$ http://www.gnunix.co.kr$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ rewrite.php [L,QSA]
{code}
±×¸®°í ±âÁ¸ /tcÀÇ .htaccessÀÇ ³»¿ëµµ º¯°æÇß´Ù.
{code}
RewriteEngine On
RewriteRule ^/tc$ http://www\.gnunix\.co\.kr
RewriteRule ^/tc/([a-zA-Z0-9]+)$ http://www\.gnunix\.co\.kr/$1
p.s3
2008. 04. 17
ÇöÀç ÀúÀÇ .htaccessÆÄÀÏÀ» °ø°³ÇÕ´Ï´Ù.
{code}
php_flag register_globals on
RewriteEngine On
RewriteBase /
Redirect /tc http://www.gnunix.co.kr
RewriteCond %{HTTP_HOST} ^gnunix\.co\.kr$ [NC,OR]
RewriteCond %{HTTP_HOST} ^gnunix\.co\.kr/([0-9]+) [NC]
RewriteRule ^(.*)$ http://www.gnunix.co.kr/$1 [R=301,L]
{code}
±âÁ¸ÀÇ ÁÖ¼Ò 'gnunix.co.kr/tc'·Î Á¢¼ÓÇÏ¸é »õ·Î¿î 'gnunix.co.kr'·Î À̵¿ÇÕ´Ï´Ù.
'gnunix.co.kr'À̳ª 'gnunix.co.kr/±Û¹øÈ£' ·Î Á¢¼ÓÇϸé ÀÚµ¿À¸·Î 'www'¸¦ ºÙ¿©ÁÝ´Ï´Ù.
ÀÌ»óÀÔ´Ï´Ù
Àǹ®Á¡À̳ª Áú¹®Àº ´å±Û·Î ³²°ÜÁÖ¼¼¿ä ^^ |