1

我们有一个位于 Drupal 数据库 (MySQL) 之上的 ASP.NET MVC 应用程序。现在这个应用程序创建了一个时事通讯并且运行得非常好。但是,现在我们正在构建 URL,如下所示:

http://baseurl/node/<node-id>

问题是客户实际上想要的是 SEO 友好的 URL,而不是这个直接的 URL。像这样:

http://baseurl/news/2012/9/hi-guys-this-is-just-a-test

获取此 URL 的最佳方法是什么?它是否存储在数据库中?只能通过 Drupal 特定方法访问?是否应该在 Drupal 中创建一个 Web 服务来接收节点 ID 并返回友好的 URL?还有什么?

你怎么看?

4

2 回答 2

3

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

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

于 2012-09-10T21:09:58.013 回答
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

...奇迹般有效。

于 2012-10-15T19:30:34.207 回答