nginx首页静态化方案

本文介绍如何使用Nginx配置子域名转发至特定HTML页面的方法,包括将请求从根目录(/)重定向到子域名对应的HTML文件,并提供了一种处理没有静态页面情况的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


if ( $host ~* (.*)\.(.*)\.(.*))
{
set $domain $1;
}
location =/
{
rewrite (.*) /html/$domain.html last;
}

# location =/ {
# index index.html index.htm;
# if (!-f $request_filename){
# rewrite (.*) /template.action;
# }
# }


以前的配置是将/转发到/template.action
现在需要将子域名转发到对应的html页面。
如man.frady.info转发到man.frady.info/html/man.html

完整的配置


#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

#add www.frady.info
upstream mybalance {
ip_hash;
server 192.168.1.109:8080;
server 192.168.1.109:28080;
}
server {
listen 80;
server_name *.frady.info ;
set $htdocs D:/java/tomcat6/webapps/ROOT/;#此处定义了htdocs
root $htdocs;
charset utf-8;
rewrite ^/products/([0-9]+)\.html$ /showWare.action?ware.wareId=$1 last;

location ~^/(WEB-INF)/{
deny all;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|css|js|html)$ {
expires 30d;
}

location /zanwork/(shopUpload|upload) {
proxy_pass http://mybalance;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~*.(jsp|do|action)$
{
index index.jsp;
proxy_pass http://mybalance;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

if ( $host ~* (.*)\.(.*)\.(.*))
{
set $domain $1;
}
location =/
{
rewrite (.*) /html/$domain.html last;
}

# location =/ {
# index index.html index.htm;
# if (!-f $request_filename){
# rewrite (.*) /template.action;
# }
# }

}

}



实际上,你可能还需要以下配置,这样才能更好的兼容没有静态页面的用户

if ( $host ~* (.*)\.(.*)\.(.*))
{
set $domain $1; #设置域名变量,以提供转发使用
}
location =/
{
set $zanHtmlFile $htdocs/htmlpage/indexHtml/$domain/index.html;#设置静态文件的位置
if (-f $zanHtmlFile){#如果存在静态文件,则跳转到静态文件
rewrite / /htmlpage/indexHtml/$domain/index.html last;
}
if (!-f $zanHtmlFile){#如果不存在静态文件,则跳转到动态地址
rewrite / /template4.action last;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值