注意:
在设置 Nginx 重定向之前要先安装 Nginx
正文:
内容一:Nginx 重定向的常用变量和参数
1.1 Nginx 重定向的常用变量
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
#'$status $body_bytes_sent "$http_referer" '
#'"$http_user_agent" "$http_x_forwarded_for"';
1.2 Nginx 重定向的常用参数
rewrite 旧地址 新地址 [选项]
last 不再读其他 rewrite 类似与 shell 的 continue
break 不再读取其他语句,结束请求 类似于 shell 的 break
redirect 临时重定向
permament 永久重定向
内容二:Nginx 重定向的案例
2.1 案例一:将域名或 IP 重定向到别的域名或 IP
# vi /usr/local/nginx/conf/nginx.conf
将部分内容修改如下:
......
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
rewrite ^/ http://www.eternalcenter.com/;
location / {
root html;
index index.html index.htm;
}
......
}
......
(补充:这里以将本地的 80 端口重定向到 www.eternalcenter.com 为例)
2.2 案例二:将域名以及域名下面的子地址指向到别的域名以及它的子地址并一一对应
# vi /usr/local/nginx/conf/nginx.conf
将部分内容修改如下:
......
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
rewrite ^/(.*)$ http://www.eternalcenter.com/$1;
location / {
root html;
index index.html index.htm;
}
......
}
......
(补充:这里以将本地的 80 端口及其子地址重定向到 www.eternalcenter.com 及其子地址为例)
2.3 案例三:将指向本地 a.html 的文件指向本地文件 b.html
# vi /usr/local/nginx/conf/nginx.conf
将部分内容修改如下:
......
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
rewrite /a.html /b.html;
}
......
}
......
或者:
......
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
rewrite /a.html /b.html redirect;
}
......
}
......
(补充:这里以将本地的 80 端口下的 a.html 重定向到 b.html 为例)
2.4 案例四:不同的浏览器返回不通的网页
# vi /usr/local/nginx/conf/nginx.conf
将部分内容修改如下:
......
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
if ($http_user_agent ~* firefox){
Rewrite ^(.*)$ /firefox/$1;
}
......
}
......
(补充:这里以将 $http_user_agent 变量包含 firefox 的访问重定向到 /firefox/ 下对应的文件为例)