例如有两个域名,指向同一个服务器IP
www.domain1.com
www.domain2.com
我建立两个目录, 存放网站文件
/var/www/domain1.com/public
/var/www/domain2.com/public
nginx配置文件为:
server {
listen
80
default_server;
listen [::]:
80 default_server ipv6only=on;
server_name ~^(www.)?(.+)$;
set $domain $2;
root /var/www/$domain/public;
index index.php index.html index.htm;
if ($host = domain1.com){
rewrite ^ http://www.domain1.com permanent; }
if ($host = domain2.com){
rewrite ^ http://www.domain2.com permanent; }
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* .(gif|jpg|jpeg|mp4|mp3|wav|ogg|flv)$ {
expires 30d;
valid_referers *.domain1.com *.domain2.com ~.baidu.com;
if ($invalid_referer) {
rewrite ^/ http://domain1.com;
#return 404;
}
}
}
注意:
set $domain $2; root /var/www/$domain/public;
不能直接用
root /var/www/$2/public;
不然
location ~ .php$
会解析错误
如果在一个server块中为一个站点配置多个二级域名
配置如下:
server {
listen
80
;
server_name ~^(.+)?.domain.com$;
index index.html;
# 将domain.com 重定向到 www.domain.com
if ($host = domain.com){
rewrite ^ http://www.domain.com permanent; }
root /data/wwwsite/domain.com/$1/;
}
站点目录结构如下:
/data/wwwsite/domain.com/www/ /data/wwwsite/domain.com/nginx/
原文:http://www.cnblogs.com/czorg/p/6783557.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!