重写 nginx URL

重写 nginx URL

我需要设置 nginx 来将 URL 从 重写example.com/page1/page2example.com/#page1/page2,以使 backbone.js 的路由正常工作。

基本上,它是关于#需要在 URL 中的第一个斜杠后附加以使其起作用。

但是我该怎么做呢?我在网上找不到任何好的例子。

当前 nginx 配置:

location / {
    root   /var/www/frontend;
    try_files $uri $uri/ @rewrites;
}

location @rewrites {
    rewrite ^/~(.*)/(.*)/? /index.html#$1/$2 last;
}

答案1

由于片段 URL 是在客户端处理的,因此您需要使用 301/302 重定向用户。尝试使用“永久”标志

location / {
    root   /var/www/frontend;
    try_files $uri $uri/ @rewrites;
}

location @rewrites {
    rewrite ^/~(.*)/(.*)/? /#$1/$2 permanent;
}

相关内容