我想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;
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 格式。