使用Azure、C#和.Net,是否有可能在提供相同页面(如index.html)的同时更改页面的某些内容?
这是为个人,例如理发师,他们有基本相同的网页内容。网页上的内容会改变,以反映网页上显示的名称和电子邮件。
因此,例如,maria.wonderhair.com将显示与www.example.com相同的文本stefanie.wonderhair.com,唯一的更改将是基于子域的一些元素,如标题页和理发师的姓名。
它还可以包含一些基于域名的其他动态内容,如电话和电子邮件。这些数据也应该存储在Azure中,作为一个简单的NoSQL数据库。
是否有可能做到这一点,而无需为每个站点/个人配置DNS条目?
1条答案
按热度按时间jchrr9hc1#
多亏了
Hussein Al Kazwini
,MSDoc才能将DNS配置为使用wildcard subdomain。使用Azure和. Net,可以根据子域提供具有一些动态更改的相同页面。
一种方法是使用Azure Functions和Azure Cosmos DB。
你可以创建一个Azure函数来接收HTTP请求并从请求URL中提取子域。基于子域,该函数可以从Cosmos DB中检索理发师的姓名、电子邮件、电话号码和其他动态内容。
然后,函数可以使用这些数据生成一个响应,其中包含相同的页面内容和一些动态更改。您可以使用模板引擎(如Razor或Handlebars)来使内容动态化并易于配置。
为了避免需要为每个站点/个人配置DNS条目,你可以使用通配符DNS将所有子域路由到同一终结点。这意味着www.example.com域下的任何子域wonderhair.com都将定向到同一Azure功能。
设置Cosmos DB示例以存储美发师数据。你可以使用Azure门户或Azure CLI创建数据库、容器和项。
1.创建一个名为“hairdressers”的容器,其中包含每个理发师的项目,包括他们的姓名、电子邮件和电话号码。
1.创建Azure函数以处理HTTP请求。你可以使用Azure门户或Visual Studio创建具有HTTP触发器的新Azure函数项目。该函数应从请求URL提取子域,并使用它从Cosmos DB检索美发师的数据。
使用
C#
从请求URL中提取子域。使用模板引擎生成页面的
HTML
。可以使用Razor
、手柄或其他模板引擎使内容动态化。一旦获得理发师数据和生成的HTML,就可以将其作为HTTP请求的响应返回。
将DNS配置为使用通配符子域。你可以将
wonderhair.com
域的DNS配置为使用通配符子域,如 *. wonderhair.com。这会将所有子域路由到同一Azure功能,从而允许你提供基于子域动态更改的相同内容。