2017-02-25 73 views
0

我創建了一個基於ajax技術的網站。現在我想用php(nginx)實現類似的效果。問題是我不想爲每個用戶或要約或任何東西創建(甚至是動態的).php文檔。我有像userTemplate.php每個頁面的模板,它適用於$_GET方法,它填充正確的數據,但地址是不可接受的,鋤頭我可以將該請求example.com/userTemplate.php?id=1轉換爲example.com/users/1.我試圖重寫它在配置文件,但它然後它將我重定向到路徑/users/1這是錯誤的......是否有可能?請我已經花了數小時尋找任何答案。Php動態子頁面和nginx地址重寫

+0

恕我直言,如果您將現有的nginx配置添加到您的問題中,您將更有可能得到答案。 – Bbak

+0

好的,但現在它是純粹的: '代碼 位置/ { try_files $ uri $ uri/= 404; } location〜\ .php $ { include snippets/fastcgi-php.conf; ##單獨使用php5-cgi: #fastcgi_pass 127.0.0.1:9000; ##使用php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; } ' 應該在那裏得到它的作品? – Michalaq

回答

1

試試這個:

location/{ 
    try_files $uri $uri/ =404; 
} 
location ~* /users/(\d+) { 
    try_files $uri /userTemplate.php?id=$1; 
} 
location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    # 
    # With php5-cgi alone: 
    # fastcgi_pass 127.0.0.1:9000; 
    # 
    # With php5-fpm: 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
} 

如果你想要去的另一種方法,看看Creating NGINX Rewrite Rules。如果你需要不同的,更復雜的正則表達式,也許開始here

+0

非常感謝!它解決了我的問題,並最終奏效!我只需在「try_files」之後添加「$ uri」:) – Michalaq

+0

對,添加$ uri – Bbak