2012-06-28 44 views
0

我有這樣的規則,阿帕奇:Nginx的重寫和2個參數

RewriteRule ^seccion/([^/\.]+)/?$ index.php?tipo=seccion&slug=$1 [L] 
RewriteRule ^seccion/([^/\.]+)/pag/([0-9]+)$ index.php?tipo=seccion&slug=$1&page=$2 [QSA,L] 

兩個工作完美,但是在nginx的我有這2

rewrite ^/seccion/([^\?]+)$ /index.php?tipo=seccion&slug=$1 last; 
rewrite ^/seccion/([^\?]+)$/pag/([0-9]+)$ /index.php?tipo=seccion&slug=$1&pag=$2 last; 

第二個是不行的,只有參數一個作品,但實際上得到的工資「,並添加頁碼,例如

http://example.com/seccion/sports/pag/4 

%slug獲得:sportspag4

任何線索我做錯了什麼?

回答

0

請嘗試此配置(您的第二條規則應該是第一個,就像一個例子):

rewrite ^/seccion/([^/]+)/pag/([0-9]+)$ /index.php?tipo=seccion&slug=$1&pag=$2 last; 

rewrite ^/seccion/(.*)$ /index.php?tipo=seccion&slug=$1 last; 
+0

這解決了問題!謝謝 – Bucanero

0

您的第二條重寫規則中有一個額外的美元符號,它與該行的末尾匹配並終止匹配。此外,您的第一條重寫規則目前正在匹配所有內容,它應該在第二條規則之後出現,或者在匹配時更加嚴格。試試這個:

rewrite ^/seccion/([^/]+)/?$ /index.php?tipo=seccion&slug=$1 last; 
rewrite ^/seccion/([^/]+)/pag/([0-9]+)$ /index.php?tipo=seccion&slug=$1&pag=$2 last; 
+0

感謝您的回覆,但我得到了同樣的錯誤之前 – Bucanero

+0

OK,它看起來像第一個重寫規則捕獲了太多。我相應地更新了它,給它一個鏡頭。 – narced133