nginx 从 url 中删除组件

nginx 从 url 中删除组件

尝试让我的网站从域中删除子文件夹,例如:

example.com.au/moodle/test/pdf

会成为

example.com.au/test/pdf

尝试从任何 URL 中删除 moodle 组件。下面是我目前正在使用的,它不起作用。

server {
  listen 80;
  server_name example.com.au;
  location /moodle {
      rewrite ^/moodle(/.*)$ $1 last;
  }
}

请告诉我哪里出了问题。我已经重新加载并重新启动了 nginx,所以我的块肯定出了问题。

答案1

好的,首先你没有在那里指定你的根,我不确定你是否只是为了简洁而省略了它,或者它根本就不存在。尝试这样的事情(不要忘记重新加载 nginx 配置)。

root 指令指定面向 Web 的文件所在的位置。通过将其设置为 moodle 目录本身,moodle 应该不再出现在您的 URL 中,因为所有请求都已在内部定向到它。

server {
  listen 80;
  server_name example.com.au;

  root /path/to/moodle/web/root;
}

如果需要的话,重写应该遵循以下步骤:

location /moodle {
  return 301 $scheme://$http_host/$1$is_args$query_string;
}

如果这不起作用,您能否提供整个站点配置。

相关内容