【问题标题】:htaccess 404 error redirection for /cat/sub/.html like urls/cat/sub/.html 的 htaccess 404 错误重定向,例如 url
【发布时间】:2009-11-24 14:18:08
【问题描述】:

如何将此类链接(如下)重定向到 404 错误页面?

http://www.blabla.com/category/sub/.html

我生成一个 SEO 友好的链接,通常产品有 blabla.com/category/sub/product.html 之类的 url

页面没有给出任何错误。它只是显示空白内容。我的意思是我可以看到像类别名称标题这样的静态文本,但是旁边没有动态类别名称,因为 url 错误并且无法从数据库中获取记录。页面不显示动态内容,而是显示静态内容

感谢帮助!谢谢

【问题讨论】:

    标签: php .htaccess http-status-code-404 redirect


    【解决方案1】:

    如果查询没有产生任何行,您可以将标题设置为 404 - 未找到并重定向到 404 页面

    例如:

    <?php    
    
        //$rows is the num_rows of the query
        if ($rows > 0) {    
          //your code here    
        } else {    
          header("HTTP/1.1 404 Not Found"); 
          header("Location: 404.html");
          exit();
        }
    
    ?>
    

    【讨论】:

    • 嗨,是的,它解决了我的问题 :) 但我认为应该有更有效的方法来通过 htaccess 或...而不是 php 控件来实现它
    • 我使用返回的 id 值控制来实现它:) 与您建议的方式相同。再次感谢
    • 不要同时发送 404 和重定向!重定向将导致 302。
    • 您可以包含页面“404.php”(用于重定向问题)
    【解决方案2】:

    您应该使用 .htaccess 来捕获错误:

    ErrorDocument 400 /errors/400.html
    ErrorDocument 401 /errors/401.html
    ErrorDocument 403 /errors/403.html
    ErrorDocument 404 /errors/404.html
    ErrorDocument 500 /errors/500.html
    

    Apache 现在知道它需要根据发生的错误加载这些页面之一。您可以改为使用 php 脚本(例如 404.php)来获得动态解决方案。

    这意味着http://www.blabla.com/category/sub/.html 将显示一条错误消息,并且服务器将生成一个错误标头(在这种情况下为 404),因此搜索引擎不会抓取它。

    您可以通过在您的 http 根目录中创建一个名为 .htaccess 的文件并将代码放入其中来使用此代码。 .htaccess 不是文件扩展名,而是文件本身。

    更多信息可以found here

    【讨论】:

    • 页面没有给出任何错误。它只是显示空白内容。我的意思是我可以看到 CATEGORY NAME 标题,但由于 url 是 wrng,所以没有动态类别名称。页面不显示动态内容,而是显示静态内容
    • 好吧,当我输入我的帖子时,您没有指定,我认为您需要查看 Lucas Renan 的答案。
    【解决方案3】:

    不要重定向!重定向 (30x) 与发送 404 不同!只需将正确的状态代码连同您的错误文档一起发送:

    if (!$documentFound) {
        header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
        readfile('error404.html');
        exit;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2015-03-24
      • 1970-01-01
      相关资源
      最近更新 更多