htaccess错误404处理不工作+动态404错误页面?

时间:2013-09-14 17:57:34

标签: .htaccess errordocument

首先,我的ErrorDocument 404 / v1永远不会重定向,但如果我查看Chrome Inspector,我确实有404错误。起初我以为是因为我真的需要指定一个文件ex:error.html,但那也没有用。 / v1只是一个wordpress子域名,我想在那里重定向我的所有错误。 / v1属于我的子域名主页。

此外,我想让错误页面动态,但我无法知道如何做到这一点。这样的事情:

RewriteCond %{REQUEST_FILENAME} public_html/(.*)
ErrorDocument 404 /v1/%1

有什么想法吗?谢谢!!

3 个答案:

答案 0 :(得分:0)

此语法不正确

RewriteCond %{REQUEST_FILENAME} public_html/(.*)
ErrorDocument 404 /v1/%1

因为ErrorDocumentRewriteCond(mod_rewrite)无关,而且它是无条件的。

条件404处理示例:

ErrorDocument 404 /404.php
RewriteRule ^foo/ - [L,NC,R=404]

答案 1 :(得分:0)

你需要通过php脚本返回404:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /404.php?path=$1 [L]

404.php file

<?php
header("HTTP/1.0 404 Not Found");

print('The file that you requested: ' . $_GET['path'] . ' was not found\n');

// or include a special 404 page

include ('/path/to/' . $_GET['path']);
?>

或者您可能完全丢失?path=$1部分,只需查看$_SERVER['REQUEST_URI']

答案 2 :(得分:0)

我使用这种语法!通常有效!

ErrorDocument 404 "<script>window.location.href='404.php?page='+window.location.href.split('/')[window.location.href.split('/').length-1];</script>"