Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess和用于不同文件类型的自定义错误文档_.htaccess_Mod Rewrite_Errordocument - Fatal编程技术网

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

.htaccess和用于不同文件类型的自定义错误文档,.htaccess,mod-rewrite,errordocument,.htaccess,Mod Rewrite,Errordocument,我想知道是否可以使用mod rewrite和ErrorDocument来定制错误页面,具体取决于请求的文件类型 例如,请求一个不存在的html或php文件,Apache将提供一个漂亮的自定义html页面 但是如果一个不存在的图像,js,css等等。。。文件被请求后,Apache将提供一个基本的html文件,其中只有一个链接 Facebook就是一个很好的例子。尝试请求一个伪造的JavaScript文件,如果您请求一个不存在的php文件,您将收到一个不同的页面。使用RewriteCond-f以及对

我想知道是否可以使用mod rewrite和ErrorDocument来定制错误页面,具体取决于请求的文件类型

例如,请求一个不存在的html或php文件,Apache将提供一个漂亮的自定义html页面

但是如果一个不存在的图像,js,css等等。。。文件被请求后,Apache将提供一个基本的html文件,其中只有一个链接


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

使用
RewriteCond-f
以及对所需输出页面的重写和标记
R=404

最终使用了ErrorDocument和RewriteRules的组合。这是有效的,因为php页面抛出了一个404 Not Found for me

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
RewriteCond%{REQUEST\u FILENAME}-F
重写cond%{REQUEST_FILENAME}-D

重写规则。*(?您可以为404页面使用PHP脚本:

ErrorDocument 404 /error404.php

在那里,您可以使用PHP分析URL路径(请参阅)并确定已请求或预期的资源类型。

我知道您要去哪里。唯一的问题是我不想重定向到新的URL,我只想在请求的URL上有一个404页面。
R
如果代码在3XX之外,则只会执行内部重定向。只需将其指向error404.js或error.css或其他什么。我是原创的我希望做的是减少对服务器的PHP请求数量。AWinter:ErrorDocument只会导致一次PHP调用。