Mercurial > hg > nginx-site
comparison xml/tr/docs/http/converting_rewrite_rules.xml @ 0:61e04fc01027
Initial import of the nginx.org website.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Thu, 11 Aug 2011 12:19:13 +0000 |
parents | |
children | 9d544687d02c |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:61e04fc01027 |
---|---|
1 <!DOCTYPE digest SYSTEM "../../../../dtd/article.dtd"> | |
2 | |
3 <article title="rewrite kurallarının çevirisi" | |
4 link="/tr/docs/http/converting_rewrite_rules.html" | |
5 lang="tr"> | |
6 | |
7 <section title="Ana siteye yönlendirme"> | |
8 | |
9 <para> | |
10 Paylaşımlı hosting kullananlar genelde her şeyi, sadece Apache’nin .htaccess dosyalarını yapılandırarak kullanırlar. Bu dosyada bulunan kuralların çevirisine örnek olarak: | |
11 | |
12 <programlisting> | |
13 RewriteCond %{HTTP_HOST} nginx.org | |
14 RewriteRule (.*) http://www.nginx.org$1 | |
15 </programlisting> | |
16 | |
17 kuralı, nginx içerisinde şu şekilde yapılıyor: | |
18 | |
19 <programlisting> | |
20 server { | |
21 listen 80; | |
22 server_name www.nginx.org nginx.org; | |
23 if ($http_host = nginx.org) { | |
24 rewrite (.*) http://www.nginx.org$1; | |
25 } | |
26 ... | |
27 } | |
28 </programlisting> | |
29 </para> | |
30 | |
31 <para> | |
32 Bu yanlış, kullanışsız ve etkisiz bir yoldur. Doğru olan ayrı bir sunucu tanımlaması yapmaktır: | |
33 | |
34 <programlisting> | |
35 server { | |
36 listen 80; | |
37 server_name nginx.org; | |
38 rewrite ^ http://www.nginx.org$request_uri?; | |
39 } | |
40 | |
41 server { | |
42 listen 80; | |
43 server_name www.nginx.org; | |
44 ... | |
45 } | |
46 </programlisting> | |
47 </para> | |
48 | |
49 </section> | |
50 | |
51 | |
52 <section> | |
53 | |
54 <para> | |
55 Diğer bir örnek ile aşağıdaki geri kalmış mantık yerine (<url>nginx.com</url> olmayan her şey ve <url>www.nginx.com</url> olmayan her şey): | |
56 | |
57 <programlisting> | |
58 RewriteCond %{HTTP_HOST} !nginx.com | |
59 RewriteCond %{HTTP_HOST} !www.nginx.com | |
60 RewriteRule (.*) http://www.nginx.com$1 | |
61 </programlisting> | |
62 | |
63 sadece <url>nginx.com</url>, <url>www.nginx.com</url> ve diğer her şeyi ayrı ayrı tanımlamalısınız: | |
64 | |
65 <programlisting> | |
66 server { | |
67 listen 80; | |
68 server_name nginx.com www.nginx.com; | |
69 ... | |
70 } | |
71 | |
72 server { | |
73 listen 80 default_server; | |
74 server_name _; | |
75 rewrite ^ http://nginx.com$request_uri?; | |
76 } | |
77 </programlisting> | |
78 </para> | |
79 | |
80 </section> | |
81 | |
82 | |
83 <section name="converting_mongrel_rules" | |
84 title="Mongrel kurallarının çevirisi"> | |
85 | |
86 <para> | |
87 Tipik Mongrel kuralları: | |
88 | |
89 <programlisting> | |
90 DocumentRoot /var/www/myapp.com/current/public | |
91 | |
92 RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f | |
93 RewriteCond %{SCRIPT_FILENAME} !maintenance.html | |
94 RewriteRule ^.*$ %{DOCUMENT_ROOT}/system/maintenance.html [L] | |
95 | |
96 RewriteCond %{REQUEST_FILENAME} -f | |
97 RewriteRule ^(.*)$ $1 [QSA,L] | |
98 | |
99 RewriteCond %{REQUEST_FILENAME}/index.html -f | |
100 RewriteRule ^(.*)$ $1/index.html [QSA,L] | |
101 | |
102 RewriteCond %{REQUEST_FILENAME}.html -f | |
103 RewriteRule ^(.*)$ $1/index.html [QSA,L] | |
104 | |
105 RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L] | |
106 </programlisting> | |
107 | |
108 şu şekilde dönüştürülmelidir: | |
109 | |
110 <programlisting> | |
111 location / { | |
112 root /var/www/myapp.com/current/public; | |
113 | |
114 try_files /system/maintenance.html | |
115 $uri $uri/index.html $uri.html | |
116 @mongrel; | |
117 } | |
118 | |
119 location @mongrel { | |
120 proxy_pass http://mongrel; | |
121 } | |
122 </programlisting> | |
123 </para> | |
124 | |
125 </section> | |
126 | |
127 </article> |