【问题标题】:Drupal 404 pageDrupal 404 页面
【发布时间】:2012-02-25 17:10:13
【问题描述】:

我在 Drupal 中应用我的自定义 404 页面时遇到了困难。

所以首先我编写了我自己的自定义 404.html(在 Drupal 之外,因此它既不是 Drupal 的一部分,也不是它的数据库的一部分!)并将其上传到我的 FTP 服务器。当我浏览到 /admin/config/system/site-information 并插入这个新上传的 404.html 文件的路径时,它告诉我该文件不存在或者我没有查看它的权限。

我认为问题在于我的自定义页面实际上并不是 Drupal 的一部分,因为我自己在 Drupal 之外上传和设计了它。但是有人知道如何解决这个问题吗?

提前致谢!

【问题讨论】:

  • 我不完全确定,但我认为那些 Drupal 设置只是指 Drupal 特定的菜单路径。

标签: html drupal http-status-code-404


【解决方案1】:

当您设置这样的错误页面时,Drupal expects node 路径。如果您不想使用 Drupal 节点,则需要使用 ErrorDocument 指令在 Apache 配置(可能是 .htaccess)中指定 404 页面。

【讨论】:

  • 您好 Karl,我在 .htaccess 文件中编辑了 ErrorDocument,上传了文件并清除了缓存,但这仍然不起作用。起初代码是:# Make Drupal handle any 404 errors. ErrorDocument 404 /index.php 然后我将其编辑为:# Make Drupal handle any 404 errors. ErrorDocument 404 /sites/all/themes/notenbalkers/404.html 但仍然没有。
  • .htaccess 文件在哪里?你确定那条路径是正确的吗?
  • 它在我的根文件夹中。我非常肯定它是正确的。奇怪的是,当您输入错误的 url 时,您不会简单地重新定向到主页,而是会收到无法找到该页面的通知。 (例如: denotenbalkers.be/test )我发现了这个:drupal.org/node/1114736。因此,ErrorDocument 不执行任何操作,并且您不能链接到 Drupal 之外的页面。嗯,这有点牛。
【解决方案2】:

看看CustomError module。这将允许您使用您的 HTML 创建的错误页面。从项目页面:

此模块允许站点管理员为 404 创建自定义错误页面 (未找到)和 403(拒绝访问),无需创建节点 他们每个人。

由于错误页面不是真正的节点,它们不属于 类别词,它们不会出现在搜索中,也不会出现在 节点列表,或在热门内容块中。

【讨论】:

    【解决方案3】:

    我同意 Karl 的观点,即 Drupal 需要 节点路径,但不会用 Apache .htaccess 覆盖 Drupal 路径。不理会 .htaccess。

    您应该创建一个新建基本页面(留空)和html--node--(xxx).tpl.php 文件。 html.tpl.phpDrupal 7 template

    这允许您开发一个具有自己的 HTML 布局和内容的静态 404 页面。您不需要模块来执行此操作。

    非常简单直接。 FTP 这个模板文件 到主题模板文件夹。在admin/config/system/site-information

    中使用模板设置404与新页面相同的节点
    <html>
    <head>
    <title>Page not found!</title>
    </head>
    <body>
    
    File not found (404 error)
    If you think what you're looking for should be here, please contact the site owner.
    
    </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      相关资源
      最近更新 更多