所以我在Apache中使用
获取了我的.htaccess文件ErrorDocument 400 /error.php?e=400
ErrorDocument 401 /error.php?e=401
ErrorDocument 403 /error.php?e=403
ErrorDocument 404 /error.php?e=404
ErrorDocument 500 /error.php?e=500
我希望它能够发送用户尝试访问的网址,例如
ErrorDocument 400 /error.php?e=400&u=URL
ErrorDocument 401 /error.php?e=401&u=URL
ErrorDocument 403 /error.php?e=403&u=URL
ErrorDocument 404 /error.php?e=404&u=URL
ErrorDocument 500 /error.php?e=500&u=URL
有可能吗?
答案 0 :(得分:1)
无法使用ErrorDocument
指令传递请求的URI。替代品是;
1)使用PHP脚本作为错误处理程序,并使用PHP获取请求的URI。
的.htaccess :
ErrorDocument 404 /404.php
404.php :
if (!isset($_GET['search'])) {
$q = trim($_SERVER['REQUEST_URI'], '/');
header('Location: http://' . $_SERVER[HTTP_HOST] . '/404.php?search=' . $q);
die();
} else {
// your search code...
}
?>
2)使用 mod_rewrite 。
的.htaccess :
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /404.php?search=%{REQUEST_URI} [L,R=404]