nginx rewrite僞靜態後產生的錯誤連接

###背景 網站採用PHP作爲後端開發語言,採用Thinkphp做爲核心開發框架。php

###問題html

//通常的URL生成方式爲
U('xxx/xxx',[a=>b]);

//目前網站中存在這種寫法
U('xxx/xxx').'&a=b';

/*
上面不規範寫法在僞靜態前與僞靜態後生成的URL對比
僞靜態前:/index.php?mod=xxx&act=xxx&a=b   能夠正常訪問
僞靜態後:/xxx/xxx.html&a=b    404
*/

若是去花時間修復這種不規範的寫法,不只費時費力,並且後期也不免出現這種不規範的寫法。nginx

因此考慮使用nginx rewrite模塊重寫爲正確的URL後端

###解決方法框架

#爲第一次出現僞靜態後綴的URL添加?
rewrite ^(.*?)\.(html|php)[^\?](.*)$ $1.$2?$3 last;
相關文章
相關標籤/搜索