NGINX重定向或别名?

时间:2013-04-29 06:53:14

标签: nginx

我想进行重定向,以便为用户提供更清晰的网址。

我想改变:

http://mydomain.com/main/username/profile

要:

http://mydomain.com/username/profile

我会用重写或alian这样做吗?

1 个答案:

答案 0 :(得分:8)

首先,您必须了解重定向和别名之间的区别。

重定向

重定向会向请求/main/username/profile的用户发送/username/profile。该URL将在浏览器中更改。如果搜索引擎可以访问URL,这一点尤其重要,因为否则它们会将同一页面索引两次(重复内容)。

如果您决定使用重定向,则应确保您的网址保持这种状态。原因是Cool URIs don't change

重定向示例:

server {
    # ...
    location / {
        # ...
        location ~ /main/([a-zA-Z0-9]+)/profile$ {
            # SEO effective redirect
            return 301 /$1/profile;
        }
        # ...
    }
}

别名

别名用于告诉nginx所请求的文件未被文件系统上的URL映射,并且应该在别处查看。以下示例来自nginx wiki:

root /var/www;
location  /i/ {
    alias  /spool/w3/images/;
}

/i/empty.gif的请求不会映射到/var/www/i/empty.gif。相反,它将与/spool/w3/images/empty.gif匹配。