日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx域名跳转

發(fā)布時間:2025/4/16 Nginx 89 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx域名跳转 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Nginx域名跳轉(zhuǎn)

301=永久重定向

用在域名比較多的情況下,使其跳轉(zhuǎn)到一個主域名下,分開主次

[root@LHQ ~]# cd /usr/local/nginx/conf/vhosts/

[root@LHQ vhosts]# vim test.conf (修改配置文件)

server

{

? ?listen 80;

? ?server_name www.test.com www.aaa.com www.bbb.com;

? ?if ($host != 'www.test.com')

? ?{

? ? ? rewrite ^/(.*)$ http://www.test.com/$1 permanent;

? ?}

? ?index index.html index.htm index.php;

? ?root /data/www;

? ? location ~ .*admin\.php$ {

? ? ? ?auth_basic "aminglinux auth";

? ? ? ?auth_basic_usre_file /usr/local/nginx/conf/.htpasswd;

? ? ? ?include fastcgi_params;

? ? ? ?fastcgi_pass unix:/tmp/www.sock;

? ? ? ?#fastcgi_pass 127.0.0.1:9000;

? ? ? ?fastcgi_index index.php;

? ? ? ?fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;

? ?}

? ?location ~ \.php$ {

? ? ? ?include fastcgi_params;

? ? ? ?fastcgi_pass unix:/tmp/www.sock;

? ? ? ?#fastcgi_pass 127.0.0.1:9000;

? ? ? ?fastcgi_index index.php;

? ? ? ?fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;

? ?}

}

檢查配置文件是否正確:

[root@LHQ vhosts]# /usr/local/nginx/sbin/nginx -t

nginx的301與302如何配置

首先看一個完整代碼示例,關(guān)于nginx 301 302跳轉(zhuǎn)的。

301跳轉(zhuǎn)設(shè)置:

server {

listen 80;

server_name 123.com;

rewrite ^/(.*) http://456.com/$1 permanent;

access_log off;

}

302跳轉(zhuǎn)設(shè)置:

server {

listen 80;

server_name 123.com;

rewrite ^/(.*) http://456.com/$1 redirect;

access_log off;

}

在看下關(guān)于nginx 301 302跳轉(zhuǎn)的詳細說明文檔

server {

server_name test.com;

rewrite ^/(.*) http://www.test1.com/$1 permanent;

}

last – 基本上都用這個Flag。

break – 中止Rewirte,不在繼續(xù)匹配

redirect – 返回臨時重定向的HTTP狀態(tài)302

permanent – 返回永久重定向的HTTP狀態(tài)301

Nginx的重定向用到了Nginx的HttpRewriteModule,下面簡單解釋以下如何使用的方法:

rewrite命令

nginx的rewrite相當于apache的rewriterule(大多數(shù)情況下可以把原有apache的rewrite規(guī)則加上引號就可以直接使用),它可以用在server,location 和IF條件判斷塊中,命令格式如下:

rewrite 正則表達式 替換目標 flag標記

flag標記可以用以下幾種格式:

last – 基本上都用這個Flag。

break – 中止Rewirte,不在繼續(xù)匹配

redirect – 返回臨時重定向的HTTP狀態(tài)302

permanent – 返回永久重定向的HTTP狀態(tài)301

特別注意:

last和break用來實現(xiàn)URL重寫,瀏覽器地址欄的URL地址不變,但是在服務(wù)器端訪問的路徑發(fā)生了變化;

redirect和permanent用來實現(xiàn)URL跳轉(zhuǎn),瀏覽器地址欄會顯示跳轉(zhuǎn)后的URL地址;

例如下面這段設(shè)定nginx將某個目錄下面的文件重定向到另一個目錄,$2對應(yīng)第二個括號(.*)中對應(yīng)的字符串:

location /download/ {

rewrite ^(/download/.*)/m/(.*)\..*$ $1/nginx-rewrite/$2.gz break;

}

nginx重定向的IF條件判斷

在server和location兩種情況下可以使用nginx的IF條件判斷,條件可以為以下幾種:

正則表達式

如:

匹配判斷

~ 為區(qū)分大小寫匹配; !~為區(qū)分大小寫不匹配

~* 為不區(qū)分大小寫匹配;!~為不區(qū)分大小寫不匹配

例如下面設(shè)定nginx在用戶使用ie的使用重定向到/nginx-ie目錄下:

if ($http_user_agent ~ MSIE) {

rewrite ^(.*)$ /nginx-ie/$1 break;

}

文件和目錄判斷

-f和!-f判斷是否存在文件

-d和!-d判斷是否存在目錄

-e和!-e判斷是否存在文件或目錄

-x和!-x判斷文件是否可執(zhí)行

例如下面設(shè)定nginx在文件和目錄不存在的時候重定向:

if (!-e $request_filename) {

proxy_pass http://127.0.0.1;

}

return

返回http代碼,例如設(shè)置nginx防盜鏈:

location ~* \.(gif|jpg|png|swf|flv)$ {

valid_referers none blocked www.test.com www.test1.com;

if ($invalid_referer) {

return 404;

}

}?


轉(zhuǎn)載于:https://blog.51cto.com/12360027/1936775

總結(jié)

以上是生活随笔為你收集整理的Nginx域名跳转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。