如果 landing.html 没有任何 url 参数,我想将其设置为服务器,如果包含 url 参数,则将其发送到 app.html。我认为这会起作用,但它告诉我无法尝试该块内的文件。
server {
root /home/username/client/projects/web-apps/public;
index landing.html index.html index.htm;
# Make site accessible from http://test1.com/
server_name test1.com;
location ~ ^/(\d\d\d\d\d) {
try_files $uri $uri/ /app.html;
}
location /q {
try_files $uri $uri/ /app.html;
}
location / {
set $page 'landing';
if ($args) {
set $page 'app';
}
try_files $uri $uri/ $page.html;
}
location /ad {
try_files $uri $uri/ /app.html;
}
location /Location {
try_files $uri $uri/ /landing.html;
}
}
答案1
您不能在 if 中使用 try_files。这可能会起作用:
location / {
set $page 'landing';
if ($args) {
set $page 'app';
}
try_files $uri $uri/ $page.html;
}