nginx:如何创建别名 url 路由?

Posted

技术标签:

【中文标题】nginx:如何创建别名 url 路由?【英文标题】:nginx: how to create an alias url route? 【发布时间】:2014-02-19 09:48:52 【问题描述】:

基本上一个服务器实例正在运行

somesite.com/production/folder/here?param=here&count=1

我想将someite.com/demo 指向/production/folder/here,所以当用户输入somesite.com/production/demo?param=here 时,它可以在不重定向到/production/folder/here 的情况下工作

【问题讨论】:

【参考方案1】:
server 
  server_name example.com;
  root /path/to/root;
  location / 
    # bla bla
  
  location /demo 
    alias /path/to/root/production/folder/here;
  

如果您需要在/demo 中使用try_files,则需要将alias 替换为root 并由于explained here 的错误而进行重写

【讨论】:

这仅适用于文件系统路径吗?如果/production/folder/here/ 是服务器实例提供的实际 URL 怎么办?是否需要重定向? 如果是实际的URL那么你要rewritealias用来指向系统中的一个目录 文档显示了一个很酷的别名和正则表达式技巧:nginx.org/en/docs/http/ngx_http_core_module.html#alias ^ 链接在 2017 年被破坏。不确定它是否已修复,我得到 404,所以它可能仍然存在问题 使用 proxy_pass 的 URL 可以避免重定向

以上是关于nginx:如何创建别名 url 路由?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置重写规则,即使在 URL 中使用别名,请求也会路由到服务器名称

Laravel 多个路由别名

Django的auth模块

在 nginx 中使用别名作为相对 url 时的禁止位置

到基础 Razor 页面的多个别名路由

在视图上生成 URL 时,Laravel 命名路由方法不会生成主机服务器的 (apache) 别名