我如何从Nginx的多个位置提供相同的位置?

时间:2019-10-28 09:56:43

标签: nginx

我的nginx版本:1.17.3

我想从nginx中我的网站的许多网址提供相同的模板

例如-

localhost:0000/adprofit
localhost:0000/adprofit/0
localhost:0000/adprofit/0/2
localhost:0000/adprofit/asdlk/asd/asd
localhost:0000/adprofit/sand/12312/asd/?AS?Dsa

无论如何,如果我遇到相同的关键字,例如“ adprofit”。 必须为我的网站用户提供“ adprofit.html”模板。 但是,请勿重写,请勿重定向。 我想保留用户请求的网址。

我的目录:

build
|
|-index.html
|-index.js
|-adprofit
|   |
|   |-adprofit.js
|   |-adprofit.html
|
|-another directories...

我成功地从不同的网址中使用了“别名”。

location /all {
     allow all;
     alias ./build/adprofit;
     index adprofit.html;
}

在这种情况下,请保留网址localhost:0000/all/并查看模板adprofit.html

也是这种情况。

代码:

location /adprofit/all {
     allow all;
     alias ./build/adprofit;
     index adprofit.html;
}
url : 'localhost:0000/adprofit/all/'

我的nginx代码:

server {
     listen       8888;
     server_name  192.168.0.25;
     add_header 'Access-Control-Allow-Origin' '*';
     access_log  logs/host.access.log  main;

     location / {
      allow all;
      root ./build;
      index  index.html;
      }

 location /adprofit {
  allow all;
  alias ./build/adprofit;
  index adprofit.html;
 }
}

我的尝试案例:

location /adprofit/ {
     allow all;
     alias ./build/adprofit;
     index adprofit.html;
}
succeed url : 'localhost:0000/adprofit/'
failed url : 'localhost:0000/adprofit/[anykeyword]' => 404 error page

code2)
location ~*/adprofit/(all|update|event) {
     allow all;
     alias ./build/adprofit;
     index adprofit.html;
}
succeed url : 'localhost:0000/adprofit/'
failed url : 'localhost:0000/adprofit/all and update and event' => 403 Forbidden

我该如何解决这种情况?

1 个答案:

答案 0 :(得分:0)

try_files指令是一种更好的方法。此配置将始终指向相同的文件(adprofit.html)。

经测试可正常工作

/adprofit

/adprotif/random

location /adprofit {
    alias /tmp/;
    try_files /adprofit.html =404
}
相关问题