Nginx 301将所有非主页网址重定向到主页

时间:2014-03-17 21:03:57

标签: nginx

我正在关闭一个网站,我需要301将所有网页重定向到主页,我会收到一条消息,说明该网站正在关闭。

基本上任何http://example.com/anyfolder - > 301到http://www.example.com

我有以下内容,但这会导致重定向循环。

location ~ ^/([A-z]+) { rewrite ^ / permanent; }

在nginx中执行此操作的正确方法是什么?

3 个答案:

答案 0 :(得分:3)

简单。

location / {
    rewrite ^ http://example.com;
}

location = / {
}

答案 1 :(得分:0)

这对我有用。假设您只有一个index.html,htm,其他网址缺少磁盘上的物理文件。

server {
  listen      80;
  server_name www.example.com example.com;
  root /u/apps/example/www;
  index index.html;

  location / {
    if (!-e $request_filename) {
      rewrite ^ / permanent;
    }
  }
}

答案 2 :(得分:0)

下面是一种更现代的语法,用于尝试使用渐进的默认值来存在各种文件资源。

请确保取消注释以下位置路径下的其他位置路径,以避免在必要时进行更具体的匹配。

还有if is evil

server {
    listen 1.2.3.4:80;
    server_name example.com;

    root /path/to/document/root;

    index index.html;

    location {
        try_files $uri $uri/ /index.html;
    }
}