nginx 将子域名指向子文件夹

nginx 将子域名指向子文件夹

我想http://blog.domain.com/指向http://www.domain.com/blog

只需通知一下,不是重定向到该位置,但只需指向它即可。
此外/博客不是文件夹。例如,它可能是 blog.php

因此当我导航至http://blog.domain.com,网站显示的内容来自http://www.domain.com/blog

我到目前为止尝试过的:

server{
  listen 80;
  server_name blog.domain.com;

  rewrite ^/blog(.*) http://blog.domain.com/$1 permanent;    
}

结果是 nginx 返回404 未找到错误。

答案1

我尽量避免使用正则表达式,因为我对此很不擅长。或许可以尝试:

  return 301 http://www.example.com/blog$request_uri;

陷阱 - Nginx 社区

root设置服务 www.example.com/blog 的目录是否会执行您正在寻找的功能?

server{
  listen 80;
  server_name blog.domain.com;
  root /path/to/blog;
}

答案2

您的重写语法是错误的。您想将根目录重写为子文件夹。在该规则中,您正在重写 /blog 文件夹,这不是您想要的。

.htaccess规则如下:

RewriteRule ^(.*)$ /blog/$1 [L]

将其转换为你的 nginx 格式。

相关内容