【问题标题】:Nginx Rewrite Rule Similar to Apache'sNginx 重写规则类似于 Apache 的
【发布时间】:2017-05-24 06:16:59
【问题描述】:

在 Apache 中,您可以使用 RewriteRule 将地址“/admin/categories/32/”指向“/admin/categories/”。

类似RewriteRule ^/admin/categories/(.*)$ /admin/categories [L]

如何使用 nginx 实现相同的功能?我试图将rewrite regex dest last; 语句放在location / { ... } 块中,但无济于事。

我有一个位于 /admin/categories/ 上的单页应用程序,因此我需要 /categories/ 之后的位在 SPA 中处理,服务器不将其视为有效路由。

谢谢

【问题讨论】:

  • 是因为location / 没有处理这个URI 还是因为你得到了一个重写循环?服务器如何解析/admin/categories?是索引文件吗?您也许可以使用try_files 而不是rewrite

标签: mod-rewrite nginx url-rewriting


【解决方案1】:

假设您的 SPA 完全是 JS,包含在<root>/admin/categories.html 的 HTML 页面中:

root "/some/location";

location /admin/categories/ {
    try_files /admin/categories.html;
}

位置块的参数进行最长前缀匹配。

【讨论】:

    猜你喜欢
    • 2017-07-26
    • 2018-05-05
    • 2014-04-24
    • 2023-03-18
    • 1970-01-01
    • 2014-06-30
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多