开发者社区> 问答> 正文

咨询个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 7457 0
5 条回答
写回答
取消 提交回答
  • 不同的host,为什么不是分别配置的呢。
    2014-06-22 15:08:50
    赞同 展开评论 打赏
  • 我猜,可能用别的方法解决吧?
    1、你定义不同的站点,规定不同的Index。网站目录指到同一位置。
    2、写个php首页文件,根据用户访问不同的域名,跳到不同的文件。
    2014-06-22 14:06:17
    赞同 展开评论 打赏
  • 2014-06-22 13:48:32
    赞同 展开评论 打赏
  • 回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
    赞同 展开评论 打赏
  • 回 楼主(风之鱼) 的帖子
    是不是写重复了,默认走第一条。
    2014-06-21 22:55:41
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多