【问题标题】:Get Drupal SEO friendly URL based on node id?获取基于节点 ID 的 Drupal SEO 友好 URL?
【发布时间】:2012-10-16 03:30:34
【问题描述】:

我们有一个位于 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?还有什么?

你怎么看?

【问题讨论】:

标签: asp.net-mvc drupal


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    Rolf...很好的答案。这实际上允许我使用以下内容进行查询以获取所有节点的 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

    ...就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多