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

设置nginx以基于url提供静态html网页,nginx,Nginx,我想服务于不同的网站根据网址用户输入。 例如,如果用户将转到 my domain.pl/内容将从桌面文件夹提供 root | |---mobile | |--- assets | |---js,css,img | |---desktop |--- assets |---js,css,img my domain.pl/desktop内容将从desktop文件夹提供 ro

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

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

 root
  |
  |---mobile
  |      |--- assets
  |              |---js,css,img
  |      
  |---desktop
         |--- assets
                 |---js,css,img
my domain.pl/desktop
内容将从desktop文件夹提供

 root
  |
  |---mobile
  |      |--- assets
  |              |---js,css,img
  |      
  |---desktop
         |--- assets
                 |---js,css,img
my domain.pl/mobile
内容将从mobile文件夹提供

 root
  |
  |---mobile
  |      |--- assets
  |              |---js,css,img
  |      
  |---desktop
         |--- assets
                 |---js,css,img
我在nginx安装文件中尝试过:

 server {

    root /desktop

    location /mobile {
        root /mobile
    }    

    location /desktop{
        root /desktop
    }    

 }
但它仅适用于
/
路径,其余路径返回
404

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


我在建立nginx方面绝对是新手,因此任何帮助都将不胜感激

应避免在
位置
块内指定
(参见)

您是否尝试过以下方法:

  • 只有一个
    根目录
  • 默认情况下,使用
    rewrite
    /desktop
    服务
配置如下所示:

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访问机器,因此无法检查
重写
语法。另请参见。

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

(不要忘记尾随分号)