怎么在Nginx 重定向時(shí)獲取域名?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

HTTP 請(qǐng)求跳轉(zhuǎn)到同名的 HTTPS 請(qǐng)求,配置如下:
http {
server {
listen 80;
server_name sub1.example.com sub2.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl spdy;
server_name sub1.example.com sub2.example.com;
# ...
}
}因?yàn)?301 是永久重定向,某些瀏覽器的緩存會(huì)記住重定向,下次訪(fǎng)問(wèn)原地址就會(huì)直接向新地址發(fā)請(qǐng)求,所以這個(gè)問(wèn)題在瀏覽器里面不一定重現(xiàn)得了(包括 Chrome 的 Incognito Window),能每次完整重現(xiàn)的方式只有 curl 。
$ curl -I http://sub2.example.com/ HTTP/1.1 301 Moved Permanently Server: nginx/1.9.3 (Ubuntu) Date: Tue, 23 Feb 2016 06:06:30 GMT Content-Type: text/html Content-Length: 193 Connection: keep-alive Location: https://sub1.example.com/
查了一下,發(fā)現(xiàn)問(wèn)題出在 $server_name 變量上。這個(gè)變量會(huì)始終返回 server_name 中第一個(gè)名字。這里其實(shí)應(yīng)該用 $host 變量。修改后的配置如下:
http {
server {
listen 80;
server_name sub1.example.com sub2.example.com;
return 301 https://$host$request_uri;
}
}$host 變量會(huì)按照以下優(yōu)先級(jí)獲取域名:
Request-Line 中的域名信息。Request-Line 包含 method, uri 和 HTTP 版本。
請(qǐng)求頭信息中的 "Host" 。
Nginx 中匹配的 server_name 配置。
看完上述內(nèi)容,你們掌握怎么在Nginx 重定向時(shí)獲取域名的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
分享文章:怎么在Nginx重定向時(shí)獲取域名-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article32/hhgsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、搜索引擎優(yōu)化、定制網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
營(yíng)銷(xiāo)型網(wǎng)站建設(shè)知識(shí)