首先,我的ErrorDocument 404 / v1永远不会重定向,但如果我查看Chrome Inspector,我确实有404错误。起初我以为是因为我真的需要指定一个文件ex:error.html,但那也没有用。 / v1只是一个wordpress子域名,我想在那里重定向我的所有错误。 / v1属于我的子域名主页。
此外,我想让错误页面动态,但我无法知道如何做到这一点。这样的事情:
RewriteCond %{REQUEST_FILENAME} public_html/(.*)
ErrorDocument 404 /v1/%1
有什么想法吗?谢谢!!
答案 0 :(得分:0)
此语法不正确:
RewriteCond %{REQUEST_FILENAME} public_html/(.*)
ErrorDocument 404 /v1/%1
因为ErrorDocument
与RewriteCond
(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>"