代码之家  ›  专栏  ›  技术社区  ›  Andrew Winter

不同文件类型的.htaccess和自定义错误文档

  •  1
  • Andrew Winter  · 技术社区  · 15 年前

    我想知道是否可以使用mod rewrite和errordocument减速来定制错误页面,这取决于请求的文件类型。

    例如,请求一个不存在的HTML或PHP文件,Apache将给出一个很好的自定义HTML页面。

    但如果一个不存在的图像,JS,CSS等…文件被请求,然后Apache将提供一个基本的HTML文件,上面只有一个链接。

    Facebook就是一个很好的例子。尝试请求一个伪造的javascript文件,如果您请求一个不存在的php文件,那么您将收到一个不同的页面。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Andrew Winter    15 年前

    结果是同时使用了errordocument和rewriterules,这很有效,因为php页面抛出了一个404,我找不到。

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .*(?<!.js|.css|.ico|.txt|.bmp|.gif|.png|.jpeg|.jpg)$ /error/404.php [L]
    
    ErrorDocument 404 /404_basic.html
    
        2
  •  0
  •   Ignacio Vazquez-Abrams    15 年前

    使用 RewriteCond !-f 同时重写到所需的输出页和标志 R=404 .

        3
  •  -1
  •   Gumbo    15 年前

    您可以为404页使用PHP脚本:

    ErrorDocument 404 /error404.php
    

    在这里,您可以使用PHP分析URL路径(请参见 $_SERVER['REQUEST_URI'] )并确定已请求或预期的资源类型。

    推荐文章