0

这是我的配置文件:

    server {
    listen   80;
    server_name moule-a-manque.com;
    access_log /var/log/nginx/myvps.com.access.log;
    error_log /var/log/nginx/myvps.com.error.log;
    client_max_body_size 4M;
    client_body_buffer_size 128k;
    expires off;

rewrite http://www.moule-a-manque.com http://moule-a-manque.com permanent;

    location / {
    root   /var/www/mom;
    index index.html index.php;
    }

我认为这应该可以,但是当我在http://nibbler.silktide.com/reports/moule-a-manque.com检查时,似乎说重定向不起作用。

我这样做是正确的吗?如果是这样,如何确保 301 重定向确实有效

4

1 回答 1

2

nginx 中的 rewrite 指令只匹配 url 的路径部分,而不匹配主机名。看起来您正在尝试强制使用 no-www,这是通过使用第二个服务器来完成的{}:

server {
  server_name www.moule-a-manque.com;
  rewrite ^ http://moule-a-manque.com$request_uri? permanent;
}

server {
  listen   80;
  server_name moule-a-manque.com;
  access_log /var/log/nginx/myvps.com.access.log;
  error_log /var/log/nginx/myvps.com.error.log;
  client_max_body_size 4M;
  client_body_buffer_size 128k;
  expires off;

  root   /var/www/mom;
  index index.html index.php;
}

此外,通常最好将根设置在某个位置之外。请参阅http://wiki.nginx.org/Pitfalls

于 2012-04-28T13:16:07.837 回答