首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置nginx以提供基于url的静态html网页。

设置nginx以提供基于url的静态html网页。
EN

Stack Overflow用户
提问于 2016-01-20 16:09:36
回答 2查看 1.7K关注 0票数 1

我想服务于不同的网站,基于url用户输入。例如,如果用户将转到

my-domain.pl/内容将从桌面文件夹中提供

my-domain.pl/desktop内容将从桌面文件夹中提供

my-domain.pl/mobile内容将从移动文件夹中提供

代码语言:javascript
复制
 root
  |
  |---mobile
  |      |--- assets
  |              |---js,css,img
  |      
  |---desktop
         |--- assets
                 |---js,css,img

我在nginx安装文件中尝试过:

代码语言:javascript
复制
 server {

    root /desktop

    location /mobile {
        root /mobile
    }    

    location /desktop{
        root /desktop
    }    

 }

但是它只适用于/路径,其余路径返回404

我尝试添加try_files $uri index.html,但是它似乎返回这个位置的所有请求的index.html文件,例如,它也返回index.html文件而不是javascript。

我在建立nginx绝对是新的,所以任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-20 16:26:25

您需要使用alias指令而不是root:参见文档

代码语言:javascript
复制
server {

    root /;

    location /desktop {
    }    

    location /mobile {
        alias /mobile;
    }    
 }

(别忘了尾随分号)

票数 2
EN

Stack Overflow用户

发布于 2016-01-20 16:17:12

应该避免在root块中指定location (cf )。nginx陷阱)。

你试过以下几种方法:

  • 只有一个root
  • 默认情况下使用rewrite/desktop服务

配置如下所示:

代码语言:javascript
复制
server {

  root /;

  ## this should take care of the redirect to /desktop by default:
  location = / {
    rewrite ^ /desktop/ redirect;
  }
  ## this one below probably doesn't work:
  # rewrite ^/$ /desktop/;

}

我现在无法访问带有nginx的机器,所以我无法检查rewrite语法。另见这个答案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34904926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档