全球主机交流论坛

标题: 求个Nginx的子目录绑定域名跳转办法 [打印本页]

作者: formroot    时间: 2017-10-31 14:55
标题: 求个Nginx的子目录绑定域名跳转办法
本帖最后由 formroot 于 2017-10-31 15:51 编辑

好像说得比较乱。。。

简单点说就是一个站绑定了多个子域名。Nginx根据子域名访问就跳转那个目录。

如:/home/wwwroot/www  
                            /www/dl
                            /www/fx
                            /www/hy

如访问 a到dl
          b到fx
          c到hy


谢谢!
作者: janfou    时间: 2017-10-31 14:55
本帖最后由 janfou 于 2017-10-31 16:11 编辑
formroot 发表于 2017-10-31 15:34
之前说的难理解,我已经修改了。帮忙看一下


就是按照你这个意思写的,关键语句已经写在下面,具体写法还得根据你配置表来填充这一段文字。
如访问 a到dl
          b到fx
          c到hy

http {
xxx;
xxx;
xxx;
server {
     listen 80;
     xxx;
     xxx;
     if ($host = a.baidu.com) { set $hf dl ;}
     if ($host = b.baidu.com) { set $hf fx ;}
     if ($host = c.baidu.com) { set $hf hy ;}
     root /home/wwwroot/www/$hf;
     xxx;
    xxx;
}
}

主要思想就是判断$host带进来的域名变量,赋值进入相对应的目录,然后在root统一跳转的指定的目录;


其实我也不明白LZ为什么非要这么写,想要达到效果未必只有这么一个方法。你得把你要的效果告诉大家,也许有其他更好的方法
作者: 偷偷的注册一个    时间: 2017-10-31 15:00
这个需要跳转么?
你直接绑定域名到那个目录不就行了?
作者: Polymer_dg    时间: 2017-10-31 15:01
难道 不是 3个虚拟主机?
作者: leaveoff    时间: 2017-10-31 15:14
我给你100金币,你把帖子关了吧。
作者: 冻猫    时间: 2017-10-31 15:18
没看懂为啥要跳转,直接绑定不就得了。
作者: janfou    时间: 2017-10-31 15:19
估计楼主用的虚拟主机还是怎么回事?其实楼上说的分开写是最好的方法,但LZ确实要这么做,那就试试下面的写法,希望对你有用。


http {
xxx;
xxx;
xxx;
server {
    listen 80;
    xxx;
    xxx;
    if ($host = a.baidu.com) { set $hf a ;}
    if ($host = b.baidu.com) { set $hf b ;}
    if ($host = c.baidu.com) { set $hf c ;}
    if ($host = d.baidu.com) { set $hf d ;}
    root /home/$hf;
    xxx;
    xxx;
    xxx;
}
}
作者: formroot    时间: 2017-10-31 15:30
偷偷的注册一个 发表于 2017-10-31 15:00
这个需要跳转么?
你直接绑定域名到那个目录不就行了?

上面说错了,其实就是子目录绑定域名。
作者: formroot    时间: 2017-10-31 15:32
Polymer_dg 发表于 2017-10-31 15:01
难道 不是 3个虚拟主机?

一个站,分了几个目录,而且需要分多个域名。
作者: formroot    时间: 2017-10-31 15:33
leaveoff 发表于 2017-10-31 15:14
我给你100金币,你把帖子关了吧。

哈哈哈哈
作者: formroot    时间: 2017-10-31 15:34
janfou 发表于 2017-10-31 15:19
估计楼主用的虚拟主机还是怎么回事?其实楼上说的分开写是最好的方法,但LZ确实要这么做,那就试试下面的写 ...

之前说的难理解,我已经修改了。帮忙看一下
作者: Polymer_dg    时间: 2017-10-31 15:35
formroot 发表于 2017-10-31 15:32
一个站,分了几个目录,而且需要分多个域名。

a.baidu.com -> baidu.com/dengji
b.baidu.com -> baidu.com/daili
c.baidu.com -> baidu.com/guanli

这样的意思 ?
作者: formroot    时间: 2017-10-31 15:39
Polymer_dg 发表于 2017-10-31 15:35
a.baidu.com -> baidu.com/dengji
b.baidu.com -> baidu.com/daili
c.baidu.com -> baidu.com/guanli


不是,是路径目录的
作者: Polymer_dg    时间: 2017-10-31 15:45
formroot 发表于 2017-10-31 15:39
不是,是路径目录的

好吧  搞不明白你要做啥
作者: formroot    时间: 2017-10-31 15:52
Polymer_dg 发表于 2017-10-31 15:45
好吧  搞不明白你要做啥

说的比较乱,更新了一下了。
作者: 朔月    时间: 2017-10-31 15:59
  1. root  /home/wwwroot/www/dl;
复制代码

直接新建虚机,目录绑定到这个目录就行了,其他不变
作者: weilai丶    时间: 2017-10-31 16:00
  1. rewrite ^/a/(.*)$ http://xx.com/b/$1 permanent;
复制代码
a目录跳转到b目录?
作者: formroot    时间: 2017-10-31 16:04
朔月 发表于 2017-10-31 15:59
直接新建虚机,目录绑定到这个目录就行了,其他不变

这个试过了,新建了server 绑定了域名和目录,但是一访问就自动下载文件。。。
作者: formroot    时间: 2017-10-31 16:42
janfou 发表于 2017-10-31 16:09
就是按照你这个意思写的,关键语句已经写在下面,具体写法还得根据你配置表来填充这一段文字。
如访问 a ...

还是不行,静态的html文件倒是可以,php的显示500错误。。。算了,直接做个页面跳转吧。。。谢谢啊
作者: dvbhack    时间: 2017-10-31 16:50
详细教程:https://ofcss.com/2017/08/28/nginx-wildcard-to-subdir-auto-detect-laravel.html
作者: 朔月    时间: 2017-10-31 16:56
formroot 发表于 2017-10-31 16:04
这个试过了,新建了server 绑定了域名和目录,但是一访问就自动下载文件。。。 ...
  1. root  /home/wwwroot/www/dl/
  2. index index.html index.htm index.php home/wwwrootr/www/dl/index.php;
复制代码

改进一下,目录后面加个 /  
然后首页文件加一个home/wwwrootr/www/dl/index.php      最后的文件改成你dl目录里的首页文件。
绝对可以!!!!

作者: janfou    时间: 2017-10-31 17:02
formroot 发表于 2017-10-31 16:42
还是不行,静态的html文件倒是可以,php的显示500错误。。。算了,直接做个页面跳转吧。。。谢谢啊 ...

晕,php的当然要加入其他语句啦


例如:
    location ~ [^/]\.php(/|$) {
        #fastcgi_pass remote_php_ip:9000;
        fastcgi_pass unix:/dev/shm/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

你不会是只抄我上面那几句吧?
作者: 蓝鹰    时间: 2017-10-31 17:15
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 全球主机交流论坛 (https://loc.528866.xyz/) Powered by Discuz! X3.4