#前臺(tái)新聞
rewrite ^/n/([a-zA-Z0-9]+)$ /www/news/msg?id=$1 break;
#應(yīng)用根目錄訪問(wèn)
rewrite ^/(adminapi|www|m)$ /$1 break;
#應(yīng)用路徑訪問(wèn)
rewrite ^/(adminapi|www|m)/(.*)$ /$1/$2 break;
#沒(méi)有應(yīng)用的,默認(rèn)www應(yīng)用
rewrite ^/(.*)$ /www/$1 break;
訪問(wèn):http://www.a.com/adminapi/login/codes
得到://www.a.com/adminapi/login/codes
訪問(wèn):http://www.a.com/n/abc123
得到://www.a.com/www/news/msg?id=abc123
問(wèn)題一:怎么得到實(shí)際訪問(wèn)的url? //www.a.com/n/abc123
問(wèn)題二:怎么判斷是 https 還是 http
疑問(wèn)為什么$_SERVER()里的好多參數(shù)都沒(méi)有了?
我也遇到了這個(gè)問(wèn)題,nginx rewrite后$_SERVER['HTTP_HOST']拿到的值是空
感覺 webman里 $_SERVER['HTTP_HOST']
本來(lái)就是空,和nginx rewrite沒(méi)關(guān)系。
webman里獲取host用 $request->header('host');
用別人框架得看文檔啊
如果 $request->header('host');
是空,說(shuō)明沒(méi)有按照文檔給nginx代理加 proxy_set_header Host $host;
參數(shù)
問(wèn)題一:怎么得到實(shí)際訪問(wèn)的url? //www.a.com/n/abc123
自己寫個(gè)php函數(shù)變換。或者用nginx把實(shí)際path加到header里,比如
proxy_set_header path $request_uri;
獲取原path使用 $request->header('path')
問(wèn)題二:怎么判斷是 https 還是 http
同樣的,nginx將當(dāng)前請(qǐng)求類型加到header里,webman獲取header來(lái)判斷
proxy_set_header scheme $scheme;
獲取協(xié)議時(shí) $request->header('scheme')
返回值類似 http
或者 https