Cu, 10/10/2014 - 15:53 By Umit
nginx

Nginx sunucularda .htaccess ayarları nasıl yapılır?

Nginx nedir?

Nginx rus yazılım mühendisi Igor Sysoev tarafından geliştirilen hafif, stabil, hızlı bir mail istemcisi olarak kodlanan daha sonraları geliştirilerek tüm sunucular için uygun hale getirilen bir web sunucusudur.

Nginx özellikle yüksek trafikli ve yoğun istek girişi olan web siteleri için biçilmiş kaftandır. Single Thread yanıt yapısıyla sayfayı tek seferde indirip sayfa açılma hızında farkedilir büyük bir artış sağlar. Ayrıca nginx apache ve litespeed ile karşılaştırıldığında çok daha az cpu kullanır. Bu sebeple Nginx vps sunucular için biçilmiş kaftandır.

İnsanların Nginx i tercih etmemesinin en büyük sebebi destek sıkıntısı ve kurulum zorluğudur ancak nginx e hakim olan bir insan için yapılamayacak pek az şey vardır. Nginx kurulumunu bu yazımızda anlatmıştık. Nginx sunucularda .htaccess çalışmaması herkesin canını sıksakmakta. Şimdi size vhost dosyalarını düzenleyerek .htaccessde yazdığımız birçok kodun nginx karşılığını örneklerle yazacagız.

"/etc/nginx/sites-available/" dizinindeki eklediğimiz vhost dosyalarını yeniden düzenlemeniz gerekmekte.

Nginx sunucularda Drupal için temiz url (mod_rewrite) çalıştırma

  server {
     listen       80;
     server_name  example.org;

     location / {
         root   /path/to/drupal;
         index  index.php;
         error_page 404 = @drupal;
     }

     location @drupal {
         rewrite ^(.*)$ /index.php?q=$1 last;
     }
 }

Drupal sitelerde temiz url(clean urls) kullanmak için kalın olarak yazılmış satırları vhost dosyanıza eklemeniz yeterli olucaktır. Daha sonra Drupal yönetici panelinizden clean urls'i aktif etmeyi unutmayınız.

vhost dosyalarımızı her düzenlediğimizde nginx sunucunuza restart atmayı unutmayın. Aksi takdirde yaptığınız değişikler yürürlüğe girmeyecektir.

Debian tabanlı sunucular için;

service nginx restart

Nginx sunucularda Wordpress için temiz url (mod_rewrite) çalıştırma

  server {
     listen       80;
     server_name  example.org;

     location / {
         root   /path/to/wordpress;
         index  index.php;
         error_page 404 = @wordpress;
     }

     location / {
         try_files $uri $uri/ /index.php?$args;
       }
     }
 }

Wordpress sitelerde temiz url kullanmak için kalın olarak yazılmış satırları vhost dosyanıza eklemeniz yeterli olucaktır.
Vhost dosyalarımızı her düzenlediğimizde nginx sunucunuza restart atmayı unutmayın. Aksi takdirde yaptığınız değişikler yürürlüğe girmeyecektir.

Debian tabanlı sunucular için;

service nginx restart

Nginx sunucularda Opencart için temiz url (mod_rewrite) çalıştırma


server {
     listen       80;
     server_name  example.org;

     location / {
         root   /path/to/opencart;

location / {
         try_files $uri @opencart;
}
      location @opencart {
      rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
     location /admin {
     index index.php;
}

OpenCart sitelerde temiz url kullanmak için kalın olarak yazılmış satırları vhost dosyanıza eklemeniz yeterli olucaktır.
Vhost dosyalarımızı her düzenlediğimizde nginx sunucunuza restart atmayı unutmayın. Aksi takdirde yaptığınız değişikler yürürlüğe girmeyecektir.

Debian tabanlı sunucular için;

service nginx restart

Nginx sunucularda www siz girişleri www li adrese nasıl yönlendirebilirim?

server {
        listen *:80;

        server_name domain.com www.domain.com;

        root   /path/to/domain;

        if ($http_host = "domain.com") {
            rewrite ^ $scheme://www.domain.com$request_uri? permanent;
        }

Şeklinde vhost dosyanızı düzenleyerek sitenize domain.com seklinde giriş yapmak istiyenleri www.domain.com adresine yönlendiricektir.

Nginx sunucularda hata sayfalarını benim belirlediğim sayfalara nasıl yönlendirebilirim?


        error_page 400 /error/400.html;
        error_page 401 /error/401.html;
        error_page 403 /error/403.html;
        error_page 404 /error/404.html;
        error_page 405 /error/405.html;
        error_page 500 /error/500.html;
        error_page 502 /error/502.html;
        error_page 503 /error/503.html;
        recursive_error_pages on;
        location = /error/400.html {

            internal;
        }
        location = /error/401.html {

            internal;
        }
        location = /error/403.html {

            internal;
        }
        location = /error/404.html {

            internal;
        }
        location = /error/405.html {

            internal;
        }
        location = /error/500.html {

            internal;
        }
        location = /error/502.html {

            internal;
        }
        location = /error/503.html {

            internal;
        }

vhost dosyalarını düzenleyerek oluşturduğunuz bir hata sayfasına yol gösterebilirsiniz. Örnek amaçlı böyle bir dizin yazdım. Bunu siz kendinize göre düzenleyebilirsiniz.

Daha sonraki yazılarda nginx ile farklı işlerin nasıl yapıldığına dair yazmaya devam edeceğiz.

Uzman bir destek almak isterseniz bizimle iletişim kurmaktan çekinmeyiniz.

Mutlu kodlamalar.