我们有一个位于Drupal数据库(MySQL)之上的ASP.NET MVC应用程序。现在这个应用程序创建一个时事通讯,工作得非常好。但是,现在我们正在构建网址:
http://baseurl/node/<node-id>
问题是客户端实际上想要SEO友好URL而不是这个直接URL。像这样:
http://baseurl/news/2012/9/hi-guys-this-is-just-a-test
获取此网址的最佳方式是什么?它存储在数据库中吗?只能通过Drupal特定方法访问?是否应在Drupal中创建Web服务以获取节点ID并返回友好URL?还有别的吗?
您怎么看?
答案 0 :(得分:3)
使用pathauto模块。它允许从节点的所有类型属性生成自动SEO友好链接,包括节点ID。
在您的特定情况下,您需要使用ASP.net从Drupal数据库访问生成的URL。不知道在ASP.net中访问数据库的方法,但您必须查询url_alias
表。该表将包含原始URL(node/1234
)与生成的URL之间的映射。
答案 1 :(得分:0)
SELECT n.nid, ua.dst FROM node AS n INNER JOIN url_alias AS ua ON ua.src = CONCAT('node/', n.nid);
或者,如果查找 1 项目并在/ node / {id}
上执行WHERE条件,则可以执行单个SELECT......就像一个魅力。