-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
urlmapping.html.ko.euc-kr
244 lines (212 loc) · 16.3 KB
/
urlmapping.html.ko.euc-kr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<?xml version="1.0" encoding="EUC-KR"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head><!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>URL을 파일시스템 위치로 대응하기 - Apache HTTP Server</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">모듈</a> | <a href="./mod/directives.html">지시어들</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">용어</a> | <a href="./sitemap.html">사이트맵</a></p>
<p class="apache">Apache HTTP Server Version 2.0</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>URL을 파일시스템 위치로 대응하기</h1>
<div class="toplang">
<p><span>가능한 언어: </span><a href="./en/urlmapping.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./ja/urlmapping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/urlmapping.html" title="Korean"> ko </a> |
<a href="./tr/urlmapping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
<p>이 문서는 요청의 URL을 가지고 아파치가 어떻게 서비스할
파일의 파일시스템상 위치를 찾는지 설명한다.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#related">관련된 모듈과 지시어들</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#documentroot">DocumentRoot</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#outside">DocumentRoot 밖에 있는 파일들</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#user">사용자 디렉토리</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#redirect">URL 리다이렉션(Redirection)</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#proxy">역프록시(Reverse Proxy)</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#rewrite">재작성 엔진 (Rewriting Engine)</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#notfound">File Not Found</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="related" id="related">관련된 모듈과 지시어들</a></h2>
<table class="related"><tr><th>관련된 모듈</th><th>관련된 지시어</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code></li><li><code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code></li><li><code class="module"><a href="./mod/mod_vhost_alias.html">mod_vhost_alias</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_alias.html#alias">Alias</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code></li><li><code class="directive"><a href="./mod/mod_speling.html#checkspelling">CheckSpelling</a></code></li><li><code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code></li><li><code class="directive"><a href="./mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#redirect">Redirect</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#redirectmatch">RedirectMatch</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritematch">RewriteMatch</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></code></li><li><code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code></li></ul></td></tr></table>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="documentroot" id="documentroot">DocumentRoot</a></h2>
<p>요청을 받은 아파치는 어떤 파일을 서비스할지 결정하기위해
기본적으로 요청의 URL-경로(URL에서 호스트명과 포트 뒤에
나오는 부분)를 설정파일에서 지정한 <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> 뒤에 붙인다. 그래서
<code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> 아래있는
파일과 디렉토리들은 웹에서 보게될 기본적인 내용이다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="outside" id="outside">DocumentRoot 밖에 있는 파일들</a></h2>
<p>종종 파일시스템에서 <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> 아래 있지않은 부분을
웹에서 접근할 필요가 있다. 아파치는 이 경우 여러가지 방법을
사용할 수 있다. 유닉스 시스템에서 심볼링크를 사용하여
파일시스템의 다른 부분을 <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> 아래에 둘 수 있다.
보안을 위해 아파치는 해당 디렉토리의 <code class="directive"><a href="./mod/core.html#options">Options</a></code> 설정에
<code>FollowSymLinks</code>나
<code>SymLinksIfOwnerMatch</code>가 있는 경우에만 심볼링크를
따라간다.</p>
<p>또, <code class="directive"><a href="./mod/mod_alias.html#alias">Alias</a></code>
지시어는 파일시스템의 특정 부분을 웹공간에 대응한다. 예를
들어 다음과 같다면</p>
<div class="example"><p><code>Alias /docs /var/web</code></p></div>
<p>URL <code>http://www.example.com/docs/dir/file.html</code>은
<code>/var/web/dir/file.html</code>을 가지고 서비스한다.
지정한 경로에 있는 모든 내용을 CGI 스크립트로 취급하는 것을
제외하고는 <code class="directive"><a href="./mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
지시어도 같은 일을 한다.</p>
<p><code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code>와
<code class="directive"><a href="./mod/mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></code>
지시어의 강력한 정규표현식기반 대응과 대치를 사용하여 더
유연한 설정이 가능하다. 예를 들어,</p>
<div class="example"><p><code>ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+)
/home/$1/cgi-bin/$2</code></p></div>
<p>는 <code>http://example.com/~user/cgi-bin/script.cgi</code>로의
요청을 경로 <code>/home/user/cgi-bin/script.cgi</code>로
대응하고, 해당 파일을 CGI 스크립트로 취급한다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="user" id="user">사용자 디렉토리</a></h2>
<p>유닉스 시스템은 전통적으로 특정 사용자 <em>user</em>의
홈디렉토리를 <code>~user/</code>로 지칭한다.
<code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code> 모듈은 이 개념을 웹에까지
확장하여, 다음과 같은 URL을 가지고 각 사용자 홈디렉토리
안에 있는 파일을 서비스한다.</p>
<div class="example"><p><code>http://www.example.com/~user/file.html</code></p></div>
<p>보안상 웹에서 사용자 홈디렉토리로 직접 접근할 수 있으면
안된다. 그래서 <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>
지시어는 사용자 홈디렉토리에서 웹용 파일들이 있을 디렉토리를
지정한다. 기본 설정 <code>Userdir public_html</code>을 사용하고
<code>/home/user/</code>가 <code>/etc/passwd</code>에 지정된
사용자 홈디렉토리라면, 위의 URL은 파일
<code>/home/user/public_html/file.html</code>에 대응한다.</p>
<p>또, <code>Userdir</code> 지시어는 <code>/etc/passwd</code>에
홈디렉토리의 위치가 저장되지않는 시스템을 위해 여러 다른
형태를 사용할 수 있다.</p>
<p>어떤 사람은 (보통 웹에서 <code>%7e</code>로 인코딩되는)
"~" 기호가 이상하여 다른 방식으로 사용자 디렉토리를 나타내고
싶어한다. 이 기능은 mod_userdir이 제공하지않는다. 그러나
사용자 홈디렉토리가 규칙적인 방법으로 구성되있다면, <code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code> 지시어를 사용하여
원하는 효과를 얻을 수 있다. 예를 들어, 다음의
<code>AliasMatch</code> 지시어를 사용하면
<code>http://www.example.com/upages/user/file.html</code>이
<code>/home/user/public_html/file.html</code>에 대응한다:</p>
<div class="example"><p><code>AliasMatch ^/upages/([a-zA-Z0-9]+)/?(.*)
/home/$1/public_html/$2</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="redirect" id="redirect">URL 리다이렉션(Redirection)</a></h2>
<p>앞에서 설명한 설정 지시어들은 아파치가 파일시스템의 특정
장소에 있는 내용을 클라이언트에게 보내게 만든다. 그러나
때때로 요청한 내용이 다른 URL에 있다고 클라이언트에게 알려주어,
클라이언트가 새로 그 URL을 요청하도록 만드는 것이 좋을 때가
있다. 이를 <em>리다이렉션(redirection)</em>이라고 하며,
<code class="directive"><a href="./mod/mod_alias.html#redirect">Redirect</a></code> 지시어를
사용한다. 예를 들어, <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> 아래 <code>/foo/</code>
디렉토리의 내용을 새로 <code>/bar/</code> 디렉토리로 옮겼다면
다음과 같이 클라이언트가 새로운 위치를 요청하도록 한다:</p>
<div class="example"><p><code>Redirect permanent /foo/
http://www.example.com/bar/</code></p></div>
<p>그러면 <code>www.example.com</code> 서버의 <code>/foo/</code>로
시작하는 URL-경로는 <code>/foo/</code>를 <code>/bar/</code>로
바꾼 URL로 리다이렉션된다. 클라이언트를 원래 서버외에 어떤
다른 서버로도 리다이렉션할 수 있다.</p>
<p>또, 아파치는 더 복잡한 재작성 문제를 위해
<code class="directive"><a href="./mod/mod_alias.html#redirectmatch">RedirectMatch</a></code>
지시어를 제공한다. 예를 들어, 다른 요청은 그대로 두고 사이트
홈페이지에 대한 요청만을 다른 사이트로 리다이렉션하려면:</p>
<div class="example"><p><code>RedirectMatch permanent ^/$
http://www.example.com/startpage.html</code></p></div>
<p>임시로 사이트의 모든 페이지를 다른 사이트의 특정 페이지로
리다이렉션하려면:</p>
<div class="example"><p><code>RedirectMatch temp .*
http://othersite.example.com/startpage.html</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="proxy" id="proxy">역프록시(Reverse Proxy)</a></h2>
<p>아파치는 다른 서버에 있는 문서를 서버의 URL 공간으로 가져올
수 있다. 이 경우 웹서버가 원격 서버에서 문서를 가져와서
클라이언트에게 전달하는 프록시 서버와 같이 동작하기때문에 이런
방법을 <em>역프록시(reverse proxying)</em>라고 한다. 클라이언트의
입장에서 역프록시 서버가 문서를 보내주는 것처럼 보이므로 일반
프록시와는 다르다.</p>
<p>아래 설정에서 클라이언트가 <code>/foo/</code>에 있는 문서를
요청하면, 서버는 <code>internal.example.com</code>의
<code>/bar/</code> 디렉토리에서 문서를 가져와서 문서가 마치
서버에 있었던 것처럼 클라이언트에게 보낸다.</p>
<div class="example"><p><code>
ProxyPass /foo/ http://internal.example.com/bar/<br />
ProxyPassReverse /foo/ http://internal.example.com/bar/
</code></p></div>
<p><code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code>는 서버가
적절한 문서를 가져오도록 설정하며, <code class="directive"><a href="./mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> 지시어는
<code>internal.example.com</code>이 보내는 리다이렉션을 재작성하여
리다이렉션이 현재 서버의 적절한 디렉토리를 가리키도록 한다.
그러나 문서 안에 있는 링크는 재작성하지 않음을 주의하라.
<code>internal.example.com</code>에 대한 절대링크는 클라이언트가
프록시서버가 아니라 <code>internal.example.com</code>으로 직접
요청하게 한다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="rewrite" id="rewrite">재작성 엔진 (Rewriting Engine)</a></h2>
<p>더 강력한 치환이 필요할때 <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>의
재작성 엔진이 도움이 된다. 이 모듈의 지시어는 브라우저 종류나
클라이언트의 IP 주소 등 요청의 특징을 가지고 어디에 있는
내용을 서비스할지 결정할 수 있다. 또, mod_rewrite는 요청을
어떻게 처리할지 결정하기위해 외부 데이터베이스 파일이나
프로그램을 사용할 수 있다. 재작성 엔진은 위에서 다룬 세
종류 대응, 즉, 내부 리다이렉션 (alias), 외부 리다이렉션,
프록시, 모두를 지원한다. mod_rewrite를 사용하는 실제 예는
<a href="misc/rewriteguide.html">URL 제작성 지침서</a>에서
설명한다.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="notfound" id="notfound">File Not Found</a></h2>
<p>결국 요청한 URL에 대응하는 파일을 파일시스템에서 찾지
못한 경우이다. 여러 가지 이유가 있다. 어떤 경우 문서를
다른 곳으로 옮겼기 때문일 수 있다. 이 경우 클라이언트에게
<a href="#redirect">URL 리다이렉션</a>으로 자원의 새로운
위치를 알려주는 방법이 제일 좋다. 그러면 자원을 옮겨도
오래된 북마크나 링크가 계속 유효하다.</p>
<p>"File Not Found" 오류의 다른 일반적인 원인은 브라우저에
직접 혹은 HTML 링크에 URL이 잘못 입력된 경우이다. 아파치는
<code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code> (맞춤법이 틀리지 않았음) 모듈로
이와 같은 문제를 돕는다. 이 모듈을 사용하면 "File Not Found"
오류가 발생하는 경우 비슷한 파일명을 가진 자원을 찾는다.
만약 발견하면 mod_speling은 클라이언트를 올바른 위치로
HTTP 리다이렉션한다. "비슷한" 파일이 여러개 있다면
클라이언트에게 목록을 보낸다.</p>
<p>mod_speling의 특히 유용한 장점은 대소문자를 구별하지않고
파일명을 비교하는 기능이다. 그래서 유닉스 파일시스템과 URL의
대소문자 성질을 알지못하는 사용자가 있는 시스템에 도움이
된다. 그러나 mod_speling이 자주 URL을 고쳐야한다면, "잘못된"
요청때마다 URL 리다이렉션과 클라이언트의 새로운 요청이
일어나므로 서버에 부담이 된다.</p>
<p>찾는 시도가 모두 실패하면 아파치는 HTTP status code 404
(file not found) 오류페이지를 보낸다. 이 페이지의 내용은
<code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code> 지시어로
조절하며, <a href="custom-error.html">사용자정의 오류
응답</a>과 <a href="misc/custom_errordocs.html">다국어
서버 오류문</a> 문서를 참고하여 사용자정의할 수 있다.</p>
</div></div>
<div class="bottomlang">
<p><span>가능한 언어: </span><a href="./en/urlmapping.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./ja/urlmapping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/urlmapping.html" title="Korean"> ko </a> |
<a href="./tr/urlmapping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div><div id="footer">
<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/">모듈</a> | <a href="./mod/directives.html">지시어들</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">용어</a> | <a href="./sitemap.html">사이트맵</a></p></div>
</body></html>