Mercurial > hg > nginx-site
diff 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 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/xml/tr/docs/http/converting_rewrite_rules.xml @@ -0,0 +1,127 @@ +<!DOCTYPE digest SYSTEM "../../../../dtd/article.dtd"> + +<article title="rewrite kurallarının çevirisi" + link="/tr/docs/http/converting_rewrite_rules.html" + lang="tr"> + +<section title="Ana siteye yönlendirme"> + +<para> +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: + +<programlisting> +RewriteCond %{HTTP_HOST} nginx.org +RewriteRule (.*) http://www.nginx.org$1 +</programlisting> + +kuralı, nginx içerisinde şu şekilde yapılıyor: + +<programlisting> +server { + listen 80; + server_name www.nginx.org nginx.org; + if ($http_host = nginx.org) { + rewrite (.*) http://www.nginx.org$1; + } + ... +} +</programlisting> +</para> + +<para> +Bu yanlış, kullanışsız ve etkisiz bir yoldur. Doğru olan ayrı bir sunucu tanımlaması yapmaktır: + +<programlisting> +server { + listen 80; + server_name nginx.org; + rewrite ^ http://www.nginx.org$request_uri?; +} + +server { + listen 80; + server_name www.nginx.org; + ... +} +</programlisting> +</para> + +</section> + + +<section> + +<para> +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): + +<programlisting> +RewriteCond %{HTTP_HOST} !nginx.com +RewriteCond %{HTTP_HOST} !www.nginx.com +RewriteRule (.*) http://www.nginx.com$1 +</programlisting> + +sadece <url>nginx.com</url>, <url>www.nginx.com</url> ve diğer her şeyi ayrı ayrı tanımlamalısınız: + +<programlisting> +server { + listen 80; + server_name nginx.com www.nginx.com; + ... +} + +server { + listen 80 default_server; + server_name _; + rewrite ^ http://nginx.com$request_uri?; +} +</programlisting> +</para> + +</section> + + +<section name="converting_mongrel_rules" + title="Mongrel kurallarının çevirisi"> + +<para> +Tipik Mongrel kuralları: + +<programlisting> +DocumentRoot /var/www/myapp.com/current/public + +RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f +RewriteCond %{SCRIPT_FILENAME} !maintenance.html +RewriteRule ^.*$ %{DOCUMENT_ROOT}/system/maintenance.html [L] + +RewriteCond %{REQUEST_FILENAME} -f +RewriteRule ^(.*)$ $1 [QSA,L] + +RewriteCond %{REQUEST_FILENAME}/index.html -f +RewriteRule ^(.*)$ $1/index.html [QSA,L] + +RewriteCond %{REQUEST_FILENAME}.html -f +RewriteRule ^(.*)$ $1/index.html [QSA,L] + +RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L] +</programlisting> + +şu şekilde dönüştürülmelidir: + +<programlisting> +location / { + root /var/www/myapp.com/current/public; + + try_files /system/maintenance.html + $uri $uri/index.html $uri.html + @mongrel; +} + +location @mongrel { + proxy_pass http://mongrel; +} +</programlisting> +</para> + +</section> + +</article>