用一个redirect去除www和.html

我有一个问题,如果用户键入:

www.myurl.com/page.html 

他们首先被redirect

 myurl.com/page.html 

然后去

 myurl.com/page 

这是因为我在我的conf文件中有以下内容

  #remove www from url if ($host ~* ^www\.(.*)) { set $remove_www $1; rewrite ^(.*)$ http://$remove_www$1 permanent; } location /{ # removes .html extension if ($request_uri ~ \.html($|\?)) { rewrite ^(.+)\.html$ $1 permanent; } } 

我的问题

有没有办法消除第一次redirect,以便如果用户键入www.mysite.com/page.html他们直接redirect到mysite.com/page

你需要你的www. 规则.html如果存在。 你也不应该需要在第二次重写if语句:

 #remove www from url if ($host ~* ^www\.(.*)) { set $remove_www $1; rewrite ^(.*?)(\.html)?$ http://$remove_www$1 permanent; } location / { rewrite ^(.+)\.html$ $1 permanent; }