2017-07-19 91 views
0

我是相當新的正則表達式和nginx的,我想做到這一點:try_files在正則表達式的具體位置在nginx的

domain.com/username       {沒有尾隨斜線   }指向域.COM /型材/用戶/用戶名
domain.com/username/     {用斜線 }指向domain.com/profile/user/username

location ~ ^/(?<username>[A-Za-z0-9\.\_]+)/?$ { 
    try_files $uri $uri/ /profile/user/$username/?rewrite=1&$args; 
} 

工作正常,只是一對夫婦的問題。
1.位置/正在嘗試文件,我不想那樣。
2.如果我刪除了?在正則表達式字符串的最後使/ strict,第一個問題得到解決,但沒有結尾斜槓的用戶名將不會被嘗試。

+0

我看不出'/'符合上述正則表達式,有或無的倒數第二個''?你確定它不是來自你的配置其他地方的副作用嗎? –

+0

如果可以幫助,我可以發佈nginx服務器配置文件。 –

回答

0

我加入了尾部斜槓下面所有的URL解決了該問題:

location/{ 
    root   /usr/share/nginx/html/domain.com; 
    index   index.php index.htm index.html; 
    rewrite   ^([^.]*[^/])$ $1/ permanent; 
} 
location ~ ^/(?<user>[A-Za-z0-9\.\_]+)/$ { 
    try_files  $uri $uri/ /$uri/ /profile/user/$user/; 
}