我需要设置 nginx 来将 URL 从 重写example.com/page1/page2
为example.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;
}