我想根据网址用户输入不同的网站。 例如,如果用户将转到
my-domain.pl/
内容将从桌面文件夹
my-domain.pl/desktop
内容将从桌面文件夹
my-domain.pl/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时非常新,所以任何帮助都将不胜感激。
答案 0 :(得分:2)
您需要使用alias
指令而不是root
:请参阅documentation。
server {
root /;
location /desktop {
}
location /mobile {
alias /mobile;
}
}
(不要忘记尾随分号)
答案 1 :(得分:1)
您应该避免在root
块内指定location
(参见nginx pitfalls)。
您是否尝试过以下操作:
root
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/;
}
P.S。我现在无法访问带有nginx的计算机,因此我无法检查rewrite
语法。另请参阅this answer。