NGINXredirect或别名?

我想做一个redirect为了给我的用户更干净的url。

我想改变:

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

至:

http://mydomain.com/username/profile

我会用重写还是阿里安来做这个?

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

重定向

重定向将发送请求/main/username/profile /username/profile 。 该网址将在浏览器中更改。 如果搜索引擎可以访问这个URL,这个特别重要,因为它们会以相同的页面索引两次(重复的内容)。

如果您决定使用重定向,则应确保您的网址保持原样。 这个原因是很酷的URI不会改变 。

重定向示例:

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

别号

别名用于告诉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

  • nginx文档:别名
  • nginx维基:别名