Nginx的URL重写规则
我的网址是这样的:Nginx的URL重写规则
http://example.com/site1
http://example.com/site2
... ...
http://example.com/siten
是的,有网站的列表。
但实际上我想通过(以site1
例如)来访问子网站:
http://site1.example.com
我在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 A记录指向IP,其中路由domain.com。
对于本地机器查找hosts文件,请使用管理员权限打开它,并在新行中添加127.0.0.1 subdomain.domain.com。
我应该在本地机器上做什么? – holys 2013-04-28 09:47:24
编辑主机文件。找到主机文件并键入例如127.0.0.1 sub.example.com – 2013-04-28 09:49:35
你让我错了:不是'127.0.0.1 example.com',而是'127.0.0.1 subdomain.example.com',并确保'... 0.1子域...'之间的空格是标签空间或几个空白字符。最好的办法是复制hosts文件中已有的条目,然后再编辑任何东西,并用127.0.0.1 subdomain.example.com替换现有的条目。欢呼 – 2013-04-28 12:22:58
我已经在我的同事的帮助下解决了这个问题。它应该是: 添加'proxy_set_header HOST $ host;'和'if($ host = site1.example.com){ 重写^ /(。*)/ site1/$ 1 break; }'。当然,我应该在'/ etc/hosts'中添加'127.0.0.1 site1.example.com'。 – holys 2013-04-28 16:36:04