drupal将'node'添加到链接url

时间:2014-01-06 18:11:13

标签: php drupal-7 pantheon

我正在一个drupal网站上工作。当前的问题是,当使用url()base_path变量创建链接时,它在本地开发环境中可以正常工作,但是当在服务器上放置相同的代码时,url会预先设置路径中的node字符串。

e.g。路径为<drupal site>/latestnews。生成的路径为<drupal site>/node/latestnode,点击后会显示page not found错误。但是,请注意,从主页单击时,链接可以正常工作(即生成正确的路径)。

任何帮助将不胜感激。如果它有帮助,我正在使用Pantheon托管进行测试。

3 个答案:

答案 0 :(得分:1)

服务器是否偶然启用了病理模块?该模块的工作是重写不同位置的链接。它可能配置错误。如果已启用,请尝试禁用它,或以每种文本格式(admin / config / content / formats)调整其配置。

答案 1 :(得分:1)

您是否检查了&#39; sites / default / settings.php&#39;中的$ base_url变量?文件有正确的值?根据文档&#34;如果Drupal在您的网站上生成错误的网址,可以  *位于HTML标题(指向CSS和JS文件的链接)或页面上的可见链接  *(例如在菜单中),取消注释基本URL语句(删除  *前导哈希符号)并填写Drupal安装的绝对URL。&#34;

答案 2 :(得分:1)

我遇到了完全相同的问题并修复了它。

最初,我的网站没有使用干净的网址。当我启用了干净的URL并重写了我的链接,以便它们之前没有字符串“?q =”时,这破坏了我的硬编码链接。这是因为当不使用干净的URL时,页面看起来在根目录中,但是当使用干净的URL时,它们看起来在文件夹内。

以下示例显示了如何更新页面以使用干净的网址会对其产生影响。

Clean_urls_DISABLED
Page: SITE?q=node/7
Hard_coded_link_in_page: ?q=node/9
Link_displayed_in_browser: SITE?q=node/9

Clean_urls_ENABLED
Page: SITE/node/7
Hard_coded_link_in_page: node/9
Link_displayed_in_browser: SITE/node/node/9

请注意,更新为使用干净网址的网页在浏览器中显示时,链接中包含“node / node”。

解决方案是将“../”添加到所有硬编码网址(对于除首页之外的页面)。这样,其他内容(如图像)的硬编码链接也可以正常工作。

Clean_urls_ENABLED
Page: SITE/node/7
Hard_coded_link_in_page: ../node/9
Link_displayed_in_browser: SITE/node/../node/9
Hard_coded_image_source_in_page: ../sites/default/files/img.jpg
Image_source_in_browser: SITE/node/../sites/default/files/img.jpg

这适用于链接,图像和包含引用文件/文档的路径的任何其他元素的硬编码路径。