开发者社区 问答 正文

咨询个nginxset给变量赋值的问题。


我是小白。


最近想通过nginx 根据host 的不同来修改index 的值。



if ($host = 'www.abc.com') {
                set $www_index "index.html";
        }
        if ($host != 'www.abc.com') {
                set $www_index "index.php";
        }
这样确实是没问题了,但想加入多个类型的默认主页就出问题了。





if ($host = 'www.abc.com') {
                set $www_index "index.html index.htm index.php";
        }
        if ($host != 'www.abc.com') {
                set $www_index "index.php index.html index.htm";
        }



阿里的大神们,求支招!!!

展开
收起
风之鱼 2014-06-21 12:36:28 7465 分享
分享
版权
举报
5 条回答
写回答
取消 提交回答
  • 不同的host,为什么不是分别配置的呢。
    2014-06-22 15:08:50 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 我猜,可能用别的方法解决吧?
    1、你定义不同的站点,规定不同的Index。网站目录指到同一位置。
    2、写个php首页文件,根据用户访问不同的域名,跳到不同的文件。
    2014-06-22 14:06:17 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 2014-06-22 13:48:32 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 回1楼365代维的帖子
    没有重复,只要变量 $www_index 值中包含空格就会403。

    甚是郁闷。也不知道Google 什么关键字,没找到什么有帮助的内容。

    最后只能再定义一个变量来调整优先级。类似

    index $www_index index.htm $variable_2

    -------------------------

    回4楼bendchen的帖子
    谢谢。

    可惜我不懂PHP,最终是再加入了一个变量来解决。转个弯就有结论了- -!

    if ($host = 'www.abc.com') {
                    set $index "index.html";
                    set $index_more "index.php";
            }
            if ($host != 'www.abc.com') {
                    set $index "index.php";
                    set $index_more "index.html";
            }

    index $index index.htm $index_more

    虽然不怎么好看,但还是简单地实现了。

    -------------------------

    回6楼akira的帖子
    就是想将默认及www 换个模板作展示,因为不是很懂php ,直接修改index.php 其实更好吧
    2014-06-21 23:20:12 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 回 楼主(风之鱼) 的帖子
    是不是写重复了,默认走第一条。
    2014-06-21 22:55:41 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等