我在尝试将用户请求链接断开时将其重定向到一个不错的http错误页面。我希望这个登录页面是一个php页面,它从重定向中收集一些信息并通过电子邮件发送给我。我所挂断的部分是使用php或htaccess获取断开链接的地址。
我当时认为有可能获得与htaccess的链接并将其作为get参数传递给php。
这是我的htaccess文件:
ErrorDocument 400 http://error.page.server/index.php?err=400&site=myweb.site.com
ErrorDocument 401 http://error.page.server/index.php?err=401&site=myweb.site.com
ErrorDocument 403 http://error.page.server/index.php?err=403&site=myweb.site.com
ErrorDocument 404 http://error.page.server/index.php?err=404&site=myweb.site.com
ErrorDocument 500 http://error.page.server/index.php?err=500&site=myweb.site.com
这是服务器处理错误详细信息的php:
<?php
// Get clients IP
function get_ip() {
$ipaddress = 'UNKNOWN';
if ($_SERVER['HTTP_CLIENT_IP']) {
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
} else if ($_SERVER['HTTP_X_FORWARDED_FOR']) {
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if ($_SERVER['HTTP_X_FORWARDED']) {
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
} else if ($_SERVER['HTTP_FORWARDED_FOR']) {
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
} else if ($_SERVER['HTTP_FORWARDED']) {
$ipaddress = $_SERVER['HTTP_FORWARDED'];
} else if ($_SERVER['REMOTE_ADDR']) {
$ipaddress = $_SERVER['REMOTE_ADDR'];
}
return $ipaddress;
}
function get_page() {
return $_SERVER['HTTP_REFERER'];
}
function get_site() {
$site = 'UNKOWN';
if ($_GET['site']) {
$site = $_GET['site'];
}
return $site;
}
function get_error() {
$error = 'UNKOWN';
if ($_GET['err']) {
$error = $_GET['err'];
}
return $error;
}
// Gather info into an array
function gather_info() {
return array('IP Address' => get_ip(), 'Web Site' => get_site(), 'Web Page' => get_page(), 'Error' => get_error());
}
截至目前,当htaccess重定向到此脚本时,get_page()函数返回null。而不是试图通过脚本从标题中提取信息有没有办法通过htaccess将页面放在一个新的get参数中?
类似的东西:
ErrorDocument 400 http://error.page.server/index.php?err=400&site=myweb.site.com&page= %VARIABLE HERE%
编辑:还要注意,这是我第一次使用.htaccess,对不起,如果这是一个愚蠢的问题。