NGinx .htaccess Olayı - Google Fan Webmaster Forum
Google Fan Webmaster Forum  
herşeyi sana yazdım

Geri git   Google Fan Webmaster Forum > Webmaster Genel > Site & Server Administration
KEY
Kayıt ol Articles Sosyal Gruplar Forumları Okundu Kabul Et

Site & Server Administration Server Yönetimi hakkında, .htaccess, Apache configuration ve log analiz, güvenlik

Cevapla
 
LinkBack Seçenekler
  1  
Alt 18-02-2009, 03:13:21
Üyeliği durduruldu
 
Thumbs up NGinx .htaccess Olayı

Nginx Nedir?

Nginx aslen Rambler isimli yoğun trafiği olan rus sitesinde kullanılmak üzere Rus yazılım mühendisi Igor Sysoev tarafından geliştirilen hafif, stabil, hızlı websunucudur.

Nginx kurulumu ve konfigurasyonunu daha farklı bir yazıda anlatmayı düşünüyorum. Bu yazıdaki amacım Nginx i bir kez olsun kurup + php yi çalıştırıp apache nin .htaccess dosyasını çalıştıramamış kişilere bir örnekle olayı anlatmam.

Apache bildiğiniz üzere dokuman root dizinindeki .htaccess dosyasındaki yönergeleri okuyarak işlem yapabilmektedir. fakat diğer web sunucularda (lighttpd, nginx, zeus vb..) şimdilik böyle bir standart düşünülmemektedir.
dolayısı ile nginx in rewrite modulunu ancak config dosyasının içerisinde tanımlamamız gerekmektedir.

Aşağıda örnek bir Nginx.conf dosyası vardır.
Kod:
worker_processes  1;
events { worker_connections  1024;}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  domain.com domain.com;

        location / {
        root   html;
        index  index.html index.htm index.php;
        }
        
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }}
    
}
burada 2 adet locasyonumuz tanımlıdır. Bunlardan birisi "location ~ \.php$" dir ki bu lokasyon php kurduğumuzda eklemiz geren .php uzantıları çalıştıracak parametrenin bulunduğu kısımdır. diğeri ise "location /" dir yani apachenin "htdocs" u yada "publick_html" sidir.
.htaccess ayarlarımız işde tam bu "location /" de yapıcaz
örnek .htaccess dosyam :
Kod:
ReWriteRule ^index.html$ index.php [L,NC]
ReWriteRule ^tum-videolar.html$ tumvideolar.php [L,NC]
ReWriteRule ^en-cok-izlenen-videolar.html$ encokizlenen.php [L,NC]
ReWriteRule ^en-cok-izlenen-videolar-sayfa(.*).html$ encokizlenen.php?sayfa=$1 [L,NC]
ReWriteRule ^tum-videolar-sayfa(.*).html$ tumvideolar.php?sayfa=$1 [L,NC]
ReWriteRule ^aranilanlar-sayfa(.*).html$ etiketler.php?sayfa=$1 [L,NC]
RewriteRule ^(.*)-ara-sayfa(.*).html$ arananlar.php?aranan=$1&sayfa=$2
RewriteRule ^(.*)-Sayfa(.*).html$ kategoriler.php?katseolink=$1&sayfa=$2 [L,NC]
ReWriteRule ^iletisim.html$ iletisim.php [L,NC]
ReWriteRule ^arama.html$ arananlar.php [L,NC]
ReWriteRule ^arananlar.html$ etiketler.php [L,NC]
ReWriteRule ^puanver.html$ puanver.php [L,NC]
RewriteRule ^(.*)-izle.html$ videoizle.php?basliktr=$1 [L]
RewriteRule ^(.*)-ara.html$ arananlar.php?etiketaranan=$1 [L,QSA]
RewriteRule ^(.*).html$ kategoriler.php?katseolink=$1 [L]
Nginx de rewrite yazmaya başlarken if koşulunu yazmak mecburiyetindeyiz.
yukarıdaki gördüğünüz .htaccess dosyasından çok farklı ruleset iniz yoksa sizinde yazıcağınız ifade if (!-f $request_filename) olucaktır.
Yani istek gönderilen dosya yoksa sizin belirleyeceğinize rewrite yapsın.

yani kısaca yukarıdaki kodum şu şekilde değişecek :

Kod:
if (!-f $request_filename) {
                rewrite /index.html  /index.php last;
                rewrite /tum-videolar.html  /tumvideolar.php last;
                rewrite /en-cok-izlenen-videolar.html  /encokizlenen.php last;
                rewrite /en-cok-izlenen-videolar-sayfa(.*).html  /encokizlenen.php?sayfa=$1 last;
                rewrite /tum-videolar-sayfa(.*).html  /tumvideolar.php?sayfa=$1 last;
                rewrite /aranilanlar-sayfa(.*).html  /etiketler.php?sayfa=$1 last;
                rewrite /(.*)-ara-sayfa(.*).html  /arananlar.php?aranan=$1&sayfa=$2 last;
                rewrite /(.*)-Sayfa(.*).html  /kategoriler.php?katseolink=$1&sayfa=$2 last;
                rewrite /iletisim.html  /iletisim.php last;
                rewrite /arananlar.html  /etiketler.php last;
                rewrite /puanver.html  /puanver.php last;
                rewrite /(.*)-izle.html  /videoizle.php?basliktr=$1 last;
                rewrite /(.*)-ara.html  /arananlar.php?etiketaranan=$1 last;
                rewrite /(.*).html  /kategoriler.php?katseolink=$1 last;
                }
görüldüğü gibi arasında çokda fark yok.
bu oluşturduğunu ruleleri "location /" e ekleyip ngin i restart yaptıkdan sonra artık elveda apache diyebilirsiniz.
Kod:
worker_processes  1;
events { worker_connections  1024;}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  www.domain.com domain.com;
        access_log  logs/host.access.log  main;
        location / {
        root   html;
        index  index.html index.htm index.php;
        if (!-f $request_filename) {
                rewrite /index.html  /index.php last;
                rewrite /tum-videolar.html  /tumvideolar.php last;
                rewrite /en-cok-izlenen-videolar.html  /encokizlenen.php last;
                rewrite /en-cok-izlenen-videolar-sayfa(.*).html  /encokizlenen.php?sayfa=$1 last;
                rewrite /tum-videolar-sayfa(.*).html  /tumvideolar.php?sayfa=$1 last;
                rewrite /aranilanlar-sayfa(.*).html  /etiketler.php?sayfa=$1 last;
                rewrite /(.*)-ara-sayfa(.*).html  /arananlar.php?aranan=$1&sayfa=$2 last;
                rewrite /(.*)-Sayfa(.*).html  /kategoriler.php?katseolink=$1&sayfa=$2 last;
                rewrite /iletisim.html  /iletisim.php last;
                rewrite /arananlar.html  /etiketler.php last;
                rewrite /puanver.html  /puanver.php last;
                rewrite /(.*)-izle.html  /videoizle.php?basliktr=$1 last;
                rewrite /(.*)-ara.html  /arananlar.php?etiketaranan=$1 last;
                rewrite /(.*).html  /kategoriler.php?katseolink=$1 last;
                }
        }
        
    location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }}
    
}
bu konuyla alakalı sorularınızı / sorunlarınızı yazarsanız cevaplamaya çalışırım.

Konu Meksikalı tarafından (18-02-2009 Saat 03:16:28 ) değiştirilmiştir..
Alıntı ile Cevapla
  2  
Alt 26-04-2010, 00:03:22
Üyeliği durduruldu
 
Standart

php'yi nginx server nasil tanitacagiz acaba? php.ini dosyasinda bir ayar gerektiriyormu? Adim adim anlatabilirmisiniz?
Alıntı ile Cevapla
  3  
Alt 28-04-2010, 10:49:16
 
Standart

phpfastcgi kurman gerekiyor sonrasında aşağıdaki ayarları yapmalısın conf dosyasına

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
Alıntı ile Cevapla
  4  
Alt 28-04-2010, 21:20:28
mow mow isimli üyemiz çevrimdışıdır. (Offline)
 
Standart

Bu günlerde baya bir hortlamış nginx konusu. Otomatik çevrim için http://www.anilcetin.com/convert-apa...cess-to-nginx/
Alıntı ile Cevapla
  5  
Alt 30-01-2012, 18:57:02
 
Standart

Arkadaşlar ben de nginx kurduktan sonraherhangi bir konunun ikinci sayfasına geçince not found hatası veriyor. Lütfen yardım edin?
__________________
kunfeyekun ol der oluverir.
Alıntı ile Cevapla
Cevapla


Bookmarks

Seçenekler

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 21:32:49.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

“İnsanların en hayırlısı, insanlara faydalı olandır”. H.Ş

Hosting by Radore Hosting

İçerik sağlayacı paylaşım sitelerinden biri olan R10.net WebMaster Forum Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. R10.net hakkında yapılacak tüm hukuksal Şikayetler adresi ile iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde R10.net yönetimi olarak tarafımızdan gereken işlemler yapılacak ve Avukatlarımız size dönüş yapacaktır.
ARGUS_OK

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 245 246 247 248 249 250 251 252