這篇文章將為大家詳細講解有關Nginx正則表達式與Nginx rewrite重寫功能的介紹,文章內容質量較高,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創新互聯建站長期為成百上千客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為平桂企業提供專業的成都網站制作、成都網站設計,平桂網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發。
一、 Rewrite 跳轉實現
服務協議功能模塊
url 資源定位路徑
location /
六、應用場景測試
公司舊域名 www.domain.com 因業務需求有變更,需要使用新域名 www.newdomain.com 代替,不能廢除舊域名,從舊域名跳轉到新域名,且保持其參數不變
[root@localhost bin]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
獲取http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
警告:/var/tmp/rpm-tmp.IHyTHc: 頭V4 RSA/SHA1 Signature, 密鑰 ID 7bd9bf62: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:nginx-release-centos-7-0.el7.ngx ################################# [100%]
[root@localhost bin]# yum install nginx -y
[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.56.1 /mnt
Password for root@//192.168.254.10/linuxs:
[root@localhost ~]# cd /abc/LNMP-C7/LNMP-C7/
[root@localhost LNMP-C7]# ls
Discuz_X3.4_SC_UTF8.zip
MySQL-boost-5.7.20.tar.gz
ncurses-5.6.tar.gz
nginx-1.12.2.tar.gz
php-5.6.11.tar.bz2
php-7.1.10.tar.bz2
php-7.1.20.tar.bz2
php-7.1.20.tar.gz
zend-loader-php5.6-linux-x86_64_update1.tar.gz
[root@localhost LNMP-C7]# tar -zxvf nginx-1.12.2.tar.gz -C /opt
[root@localhost LNMP-C7]# useradd -M -s /sbin/nologin nginx
[root@localhost LNMP-C7]# cd /opt/nginx-1.12.2/
[root@localhost nginx-1.12.2]# ls
auto CHANGES.ru configure html man src
CHANGES conf contrib LICENSE README
[root@localhost nginx-1.12.2]# yum install gcc gcc-c++ pcre pcre-devel make zlib-devel -y
[root@localhost nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.12.2]# make && make install
[root@localhost conf]# vim nginx.conf
37 server_name www.accp.com;
41 access_log logs/www.accp.com/access.log main;
[root@localhost conf]# yum install bind -y
[root@localhost conf]# vim /etc/named.conf
13 listen-on port 53 { any; };
21 allow-query { any; };
[root@localhost conf]# vim /etc/named.rfc1912.zones
25 zone "accp.com" IN {
26 type master;
27 file "accp.com.zone";
28 allow-update { none; };
29 };
[root@localhost conf]# cd /var/named/
[root@localhost named]# ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback
[root@localhost named]# cp -p named.localhost accp.com.zone
[root@localhost named]# vim accp.com.zone
www IN A 192.168.247.202
[root@localhost named]# systemctl start named
[root@localhost named]# systemctl stop firewalld.service
[root@localhost named]# setenforce 0
[root@localhost named]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost named]# cd /usr/local/nginx/
[root@localhost nginx]# ls
conf html logs sbin
[root@localhost nginx]# cd logs/
[root@localhost logs]# mkdir www.accp.com
[root@localhost logs]# ls
error.log www.accp.com
[root@localhost logs]# nginx
[root@localhost logs]# netstat -natp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6
打開win10客戶機,配置DNS服務器,并使用域名訪問。
[root@localhost logs]# vim /usr/local/nginx/conf/nginx.conf
location / {
#域名重定向
‘ if ($host = 'www.accp.com') {
’ rewrite ^/(.*)$ http://www.kgc.com/$1 permanent;
‘ }
root /html;
index index.html index.htm;
}
[root@localhost logs]# vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
type master;
file "kgc.com.zone";
allow-update { none; };
};
[root@localhost logs]# cd /var/named/
[root@localhost named]# ls
accp.com.zone dynamic named.empty named.loopback
data named.ca named.localhost slaves
[root@localhost named]# cp -p accp.com.zone kgc.com.zone
[root@localhost named]# systemctl restart named
[root@localhost named]# killall -1 nginx
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
37 server_name bbs.accp.com;
42 location /post {
43 rewrite (.+) http://www.accp.com/bbs$1 permanent;
44 }
[root@localhost html]# cd -
/var/named
[root@localhost named]# vim accp.com.zone
[root@localhost named]# cat accp.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
bbs IN A 192.168.247.202
[root@localhost named]# killall -3 nginx
[root@localhost named]# nginx
[root@localhost named]# systemctl restart named
基于客戶端IP訪問跳轉
[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf
42 #設置是否合法的IP標志
43 set $rewrite true;
44 #判斷是否為合法IP,是否是允許的IP
45 if ($remote_addr = "192.168.247.139"){
46 set $rewrite false;
47 }
48 #不被允許的IP進行判斷,打上標記
49 if ($rewrite = true){
50 rewrite (.+) /maintenance.html;
51 }
52 #匹配標記進行跳轉站點
53 location = /maintenance.html {
54 root html;
55 }
[root@localhost named]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html index.html
[root@localhost html]# vim maintenance.html
[root@localhost html]# killall -3 nginx
[root@localhost html]# nginx
基于參數匹配的跳轉———跳轉到首頁
[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf
37 server_name www.accp.com;
42 if ($request_uri ~ ^/100-(100|200)-(\d+).html$){
43 rewrite (.*) http://www.accp.com permanent;
44 }
[root@localhost named]# vim accp.com.zone
[root@localhost named]# cat accp.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.247.202
[root@localhost named]# systemctl restart named
[root@localhost named]# killall -3 nginx
[root@localhost named]# nginx
基于目錄下所有PHP文件跳轉
[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf
42 location ~* /upload/.*\.php$ {
43 rewrite (.+) http://www.accp.com permanent;
44 }
[root@localhost named]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost named]# killall -3 nginx
[root@localhost named]# nginx
基于最普通URL請求的跳轉——跳轉到首頁
[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf
42 location ~* ^/abc/123.html {
43 rewrite (.+) http://www.accp.com permanent;
44 }
基于最普通URL請求的跳轉——跳轉到首頁
[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf
42 location ~* ^/abc/123.html {
43 rewrite (.+) http://www.accp.com permanent;
44 }
[root@localhost named]# killall -3 nginx
[root@localhost named]# nginx
文章題目:Nginx正則表達式與Nginxrewrite重寫功能的介紹
文章地址:http://www.2m8n56k.cn/article14/jjdsde.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、定制開發、微信公眾號、網站維護、企業建站、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯