使用可变子域是一种好的做法吗?

Is a good practice using variable subdomains?

我有一个网页,现在我想添加子域以获得更易读的 url

比如我的主页是www.myshop.com添加

product1.myshop.com
category1.myshop.com
etc...

它托管在 Digital Ocean 上,在 Ubuntu、nginx、unicorn 和 POstgreSql 数据库下运行,使用 Ruby 在 Rails[ 上开发=45=]

阅读有关子域的文档后,我意识到我可以拥有 可变子域 ,我尝试过的是:

1) 在“Digital Ocean的域名配置

中添加一条带*的"A"记录

2) 修改nginx配置文件,像我对"www"子域所做的那样添加一个新行,但带有“*”

server {
   listen 80;
   server_name myshop.com;
   return 301 $scheme://www.myshop$request_uri;

   # NEW LINE --->
   return 301 $scheme://*.myshop$request_uri; 
}

之后,在 Rails 程序的 Ruby 中,捕获 myshop.com 之前的任何内容(类别、产品名称...等作为子域)很容易,而且我可以自动重定向到类别网页或产品网页,或其他任何内容!

因此,例如,如果用户键入 whells.myshop.com,我将重定向到 www.mysop。com/categories/wheels

(当然,很棒的是 wheels 是 table 中的一个值)

无需在Digital Ocean或ngingx配置文件中注册子域名

但是,这似乎太简单了……:/

这不安全吗?是一种不好的做法吗?

非常感谢,(Whosebug:非常好的网络和非常好的用户)

不,与使用路径来定向请求相比,使用子域没有内在风险。这完全取决于您组织代码的方式、使用的工具、在网站上工作的不同团队的组织方式等。

在这两种情况下,您都需要可靠的身份验证和授权。

当您在同一个域中有两个不同的网站时,子域通常很有用。例如,wordpress.com 为每个在 wordpress.com 上拥有站点的用户使用子域。如果我要在那里建立一个网站,那将是 saq7.wordpress.com

但是,他们也可以选择使用路径路由到不同用户的不同网站www.wordpress.com/saq7

这是您作为工程师可以做出的选择,标准是

  • url本身的优雅
  • 代码组织
  • 你的团队组织
  • 你喜欢橘子还是苹果...