2014-10-20 83 views
0

我尝试了其他溢出的解决方案,但这些解决方案不适合我。没有任何答案的文档太多,所以在特定情况之外应用更加困难。重写nginx索引到根

我已经有site.com重定向到www.site.com与

server { 
    listen 10.10.10.10; 
    server_name site.com; 
    rewrite/$scheme://www.$host$request_uri permanent;    
} 

而且我想添加一个site.com/index重定向到site.com。任何我能工作的东西都会变成一个循环。

编辑

基于defenestrate.me的回答和其他的信息,我拿起 -

通常的配置 -

location/{ 
     index index.html index.php; 
    } 

发送根的index.html等,所以如果index.html的重定向到根,这将重定向回到索引,所以需要一个if函数,就像在答案中一样。

回答

1

我只是设法通过以下里面只是一个服务器节得到这个工作:

if ($request_uri = /index.php) { 
    return 301 $scheme://$host; 
} 

我不是nginx的过度精通,但我会尽力回答您的问题(有人请纠正我,如果我错了)

你可能必须将它添加到后80和端口443部分为它的工作,我不认为将其添加到站点范围的侦听器将工作。

你需要保持索引index.html index.php;因为它指定了如果没有指定哪个默认文件(例如导航到文件夹)

+0

它因为索引index.html index.php而循环; – Jon 2014-10-20 14:33:12

+0

非常奇怪,在我的测试中,这样的索引集很好。以前使用重写的所有方法都被删除了吗?你能发布当前的配置,以便我们测试你正在使用的设置吗? – 2014-10-20 14:53:30

+0

我没有得到if语句,为什么它的关键。 index.php在网站上工作,但没有索引。不太确定那里发生了什么事 – Jon 2014-10-22 07:42:23