Nginx url重写规则
我有这样的URL:Nginx url重写规则,nginx,rewrite,Nginx,Rewrite,我有这样的URL: http://example.com/site1 http://example.com/site2 ... ... http://example.com/siten 是的,有一个网站列表 但实际上我想通过以下方式访问子网站(以site1为例): 我在nginx.conf中所做的是: if ($host = site1\.example\.com){ rewrite ^/(.*) /example.com/site1/$1 break; } 是的,在本地
http://example.com/site1
http://example.com/site2
... ...
http://example.com/siten
是的,有一个网站列表
但实际上我想通过以下方式访问子网站(以site1
为例):
我在nginx.conf
中所做的是:
if ($host = site1\.example\.com){
rewrite ^/(.*) /example.com/site1/$1 break;
}
是的,在本地机器上测试,我编辑了/etc/hosts
:
127.0.0.1 example.com
但不是工作。有人能解释一下吗?您必须为子域功能指定CNAME记录。没有它,任何web服务器配置规则都无法工作 在DNS记录管理面板(无论您使用什么)中,必须创建subdomain.domain.com并将DNS记录指向路由为domain.com的IP
对于本地计算机查找主机文件,请以管理员权限打开该文件,并在新行中添加127.0.0.1 subdomain.domain.com。我应该在本地计算机中执行什么操作?编辑主机文件。查找hosts文件并键入例如127.0.0.1 sub.example.com您搞错了:不是
127.0.0.1 example.com
,而是127.0.0.1 subdomain.example.com
,并确保…0.1 subdomain…
之间的空格为制表符或几个空格字符。最好的办法是复制主机文件中的现有条目,该条目在您编辑任何内容之前就已经存在,并且很容易用127.0.0.1 subdomain.example.com替换现有条目。谢谢我在同事的帮助下解决了这个问题。应该是:添加proxy\u set\u header HOST$HOST
和如果($host=site1.example.com){rewrite^/(.*)/site1/$1 break;}
。当然,我应该在/etc/hosts
中添加127.0.0.1 site1.example.com
。
127.0.0.1 example.com