Nginx 域名重定向
修改host绑定aaa.com到虚拟机,访问aaa.com时会跳转至默认虚拟主机。之前配置了deny all显示403. 为了让aaa.com也可以访问到mxiaoqi.top这个域名,则需要域名重定向
-
方法一:修改对应网站配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 1[root@CentOS-1 vhost]# vi mxiaoqi.top.conf
2
3server
4{
5 listen 80 ;
6 server_name mxiaoqi.top aaa.com;
7 #增加aaa.com
8 index index.html index.htm index.php;
9 root /data/wwwroot/mxiaoqi.top;
10
11location ~ \.php$
12 {
13 root /data/wwwroot/mxiaoqi.top;
14 include fastcgi_params;
15 fastcgi_pass unix:/tmp/php-fcgi.sock;
16 fastcgi_index index.php;
17 fastcgi_param SCRIPT_FILENAME /data/wwwroot/mxiaoqi.top$fastcgi_script_name;
18 }
19
20}
21
22[root@CentOS-1 vhost]# nginx -t
23nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
24nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
25[root@CentOS-1 vhost]# nginx -s reload
26#再次访问aaa.com可以跳转到mxiaoqi.top上
27
28
-
方法二:域名重定向,从A域名跳转到B域名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 1[root@CentOS-1 vhost]# vi mxiaoqi.top.conf
2
3server
4{
5 listen 80 ;
6 server_name mxiaoqi.top aaa.com;
7 if ( $host = mxiaoqi.top )
8 #增加判断条件,当访问域名是mxiaoqi.top的时候
9 {
10 rewrite /(.*) http://aaa.com/$1 permanent;
11 #把mxiaoqi.top/后面的内容重新写到aaa.com/后面如果后面有多段则使用$2、$3以此类推
12 #permanent是转发状态码
13 }
14 index index.html index.htm index.php;
15 root /data/wwwroot/mxiaoqi.top;
16
17location ~ \.php$
18 {
19 root /data/wwwroot/mxiaoqi.top;
20 include fastcgi_params;
21 fastcgi_pass unix:/tmp/php-fcgi.sock;
22 fastcgi_index index.php;
23 fastcgi_param SCRIPT_FILENAME /data/wwwroot/mxiaoqi.top$fastcgi_script_name;
24 }
25
26}
27[root@CentOS-1 vhost]# nginx -t
28nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
29nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
30[root@CentOS-1 vhost]# nginx -s reload
31#重新加载配置文件后,再次访问mxiaoqi.top会自动跳转到aaa.com。域名重定向成功。
32
33#使用curl命令测试
34[root@CentOS-1 vhost]# curl -x127.0.0.1:80 mxiaoqi.top/123/444 -I
35HTTP/1.1 301 Moved Permanently
36Server: nginx/1.8.0
37Date: Fri, 06 Sep 2019 06:57:19 GMT
38Content-Type: text/html
39Content-Length: 184
40Connection: keep-alive
41Location: http://aaa.com/123/444
42#成功跳转到配置文件中设置的域名
43
44
状态码含义:200(OK) 404(不存在) 304(缓存) 301(永久重定向) 302(临时重定向) 为了转移权重,只能用301
-
内部跳转302临时重定向
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 1[root@CentOS-1 vhost]# !vi
2vi mxiaoqi.top.conf
3
4server
5{
6 listen 80 ;
7 server_name mxiaoqi.top aaa.com;
8 if ( $host = mxiaoqi.top )
9 {
10 rewrite /(.*) http://aaa.com/$1 permanent;
11 }
12 index index.html index.htm index.php;
13 root /data/wwwroot/mxiaoqi.top;
14 rewrite /1.txt /2.txt redirect;
15 #增加一行,做内部跳转。当访问1.txt时会跳转到2.txt
16location ~ \.php$
17 {
18 root /data/wwwroot/mxiaoqi.top;
19 include fastcgi_params;
20 fastcgi_pass unix:/tmp/php-fcgi.sock;
21 fastcgi_index index.php;
22 fastcgi_param SCRIPT_FILENAME /data/wwwroot/mxiaoqi.top$fastcgi_script_name;
23 }
24
25}
26
27[root@CentOS-1 vhost]# nginx -t
28nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
29nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
30[root@CentOS-1 vhost]# nginx -s reload
31[root@CentOS-1 vhost]# curl -x127.0.0.1:80 aaa.com/1.txt -I
32HTTP/1.1 302 Moved Temporarily
33Server: nginx/1.8.0
34Date: Fri, 06 Sep 2019 07:25:43 GMT
35Content-Type: text/html
36Content-Length: 160
37Location: http://aaa.com/2.txt
38#测试访问1.txt自动跳转到2.txt
39Connection: keep-alive
40
41
域名跳转最好使用301,不涉及域名跳转使用302
==END==