根据节点ID获取Drupal SEO友好URL?

时间:2012-09-10 21:06:48

标签: asp.net-mvc drupal

我们有一个位于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?还有别的吗?

您怎么看?

2 个答案:

答案 0 :(得分:3)

使用pathauto模块。它允许从节点的所有类型属性生成自动SEO友好链接,包括节点ID。

在您的特定情况下,您需要使用ASP.net从Drupal数据库访问生成的URL。不知道在ASP.net中访问数据库的方法,但您必须查询url_alias表。该表将包含原始URL(node/1234)与生成的URL之间的映射。

答案 1 :(得分:0)

罗尔夫......很好的答案。这实际上允许我通过使用以下命令来查询以获取所有节点的URL别名:

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

......就像一个魅力。