NGINX重定向或别名?

Chr*_*mbo 2 nginx

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

我想改变:

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

至:

http://mydomain.com/username/profile

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

Fle*_*der 8

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

重定向

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

如果您决定使用重定向,则应确保您的网址保持这种状态.原因是Cool URI不会改变.

重定向示例:

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

别号

一个别名是用来告诉一个请求的文件将不包含在文件系统中的URL映射nginx的,它应该有一个别处.以下示例来自nginx wiki:

root /var/www;
location  /i/ {
    alias  /spool/w3/images/;
}
Run Code Online (Sandbox Code Playgroud)

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