2012-12-22 15 views
8

Apache'den Nginx'e geçişin ortasındayım.Nginx: Varolan tüm istekleri index.php'ye yönlendirin

Şu anda yönlendirmeyi işlemek için SERVER ['request_uri'] kullanan bir özel içerik yönetimi çözümü kullanıyorum.

Yapmaya çalıştığım şey, var olmayan tüm dosyaları & dizin isteklerini /index.php dizinine yönlendirmek ve istemcileri uri'yi güncelleştirmemek. Ancak, bir dosya mevcut olduğunda, bunun yerine geri dönmek istiyorum.

bir örnek url olacaktır: localhost/içerik/sayfa/1 < - nüfusun Should $ _SERVER [ 'REQUEST_URI'] olmak/içerik/sayfa/1 Ya localhost/kamu/script/< exists.js - Gerçek bir dosya olarak iade edilmelidir.

cevap

9

Sen nginx sankonun dosya içinde location / blok eklemek veya geçerli location / blok güncellemeniz gerekir.

dosya veya dizin bulunamadı, bu index.php tüm istek yönlendirir

:

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

Bu fazla bilgi ziyaret http://wiki.nginx.org/HttpCoreModule

için, sunucu yönergesi içine gider size sankonun dosyasını değiştirdikten sonra sunucu bl için try_files yönergesi: Eğer yeniden başlatma nginx için

Not ihtiyaç ocks, 0.7.44

+0

BTW'de eklendi, yeniden yönlendirilen dosya adını php'de nasıl alabilirim? – starikovs