NGINX重定向
語法:rewriteregexreplacement[flag];
默認值:—
使用:
Serverlocation,if
server定義一個站點,location定義站點目錄位置
如果指定的正則表達式能匹配URI,此URI將被replacement參數定義的字符串改寫。
rewrite指令按其在配置文件中出現的順序執行。flag可以終止後續指令的執行。
如果replacement的字符串以“http://”或“https://”開頭,nginx將結束執行過程,
並返回給客戶端一個重定向。
可選的flag參數可以是其中之一:
last
停止執行當前這一輪的ngx_http_rewrite_module指令集,然後查找匹配改變後URI的新location;
break
停止執行當前這一輪的ngx_http_rewrite_module指令集;
redirect
在replacement字符串未以“http://”或“https://”開頭時,使用返回狀態碼爲302的臨時重定向;
permanent
返回狀態碼爲301的永久重定向。
完整的重定向URL將按照請求協議($scheme)、server_name_in_redirect指令和port_in_redirect指令的配置進行補全
例子:
Nginx結合php是靠fastcgi,修改nginx的配置文件,讓nginx可以調用php頁面。
location/{
roothtml;
indexindex.phpindex.htmlindex.htm;
}
1,訪問站點主目錄下的任何jpg的請求都被定向到主頁面
rewrite"^/.*\.jpg$"/index.php;
2,Rewrite"^/(.*)/(.*)\.bmp$"/$1/$2.jpg訪問站點目錄下的任何目錄下的任何以.bmp結尾的圖片,都要被重定向到站點目錄下的相同目錄下的任何以.jpg結尾的文件。
3,訪問站定主目錄下的任何文件,將被重定向到另外一臺web服務器上的站點主目錄下的index.php目錄裏面。
http://192.168.2.100/1.bmp
http://192.168.2.100/index.php---->http://192.168.20.100/index.php
Rewrite“/.*”http://192.168.20.100/index.php;
4,將訪問www.abc.com/forum重定向到www.abc.com/bbs
域名訪問修改host文件
rewrite"/froum/*"/bbs;
server{
...
rewrite^(/download/.*)/media/(.*)\..*$$1/mp3/$2.mp3last;
rewrite^(/download/.*)/audio/(.*)\..*$$1/mp3/$2.ralast;
return403;
...
}
5,實現域名跳轉
比如訪問www.abc.com站點下的任何文件或目錄---》,都定向到www.tyedus.com
http://www.abc.com