闲来无事,研究了一下 Sablog 模板和 .htaccess,顺便给自己的网站加上了自定义错误页面。参见以下链接:
http://www.snailium.net/error-400.html
http://www.snailium.net/error-401.html
http://www.snailium.net/error-403.html
http://www.snailium.net/error-404.html
http://www.snailium.net/error-500.html
自定义错误页面方法如下:
应用系统:Sablog 1.6
修改文件:2个 + .htaccess
添加文件:1个模板 + 若干个错误图片
步骤:
第一步:修改 /index.php
找到:
[code lang="php" title="/index.php"]
require_once PrintEot('index');
[/code]
在上方添加:
[code lang="php" title="/index.php"]
// 自定义错误
elseif ($_GET['action'] == 'error') {
$error_code = $_GET['code'];
$pagefile = 'error';
}
[/code]
第二步:修改模板文件夹下的 index.php
找到:
[code lang="html" title="index.php"]
<head>
[/code]
在下方添加:
[code lang="html" title="index.php"]
<!–
EOT;
if ($pagefile == 'error') {
print <<<EOT
—>
<base href="$options[url]" />
<!–
EOT;
}
print <<<EOT
—>
[/code]
第三步:在模板文件夹下建立 error.php
内容如下:
[code lang="php" title="error.php"]
<!–<?php
if(!defined('SABLOG_ROOT')) {
exit('Access Denied');
}
print <<<EOT
–>
<div class="content-top">
<!–
EOT;
switch ($error_code)
{
case '400':
print '–> 错误 400:不正确的请求<!–';
break;
case '401':
print '–> 错误 401:需要身份验证<!–';
break;
case '403':
print '–> 错误 403:禁止访问<!–';
break;
case '404':
print '–> 错误 404:文件不存在<!–';
break;
case '500':
print '–> 错误 500:服务器内部错误<!–';
break;
default:
print '–> 未知错误<!–';
break;
}
print <<<EOT
–>
</div>
<div id="article-box">
<div class="article-title" style="text-align: center;">
<!–
EOT;
switch ($error_code)
{
case '401':
print '–> <img src="/images/error/401.jpg" /><!–';
break;
case '403':
print '–> <img src="/images/error/403.jpg" /><!–';
break;
case '404':
print '–> <img src="/images/error/404.gif" /><!–';
break;
default:
print '–> <img src="/images/error/general.gif" /><!–';
break;
}
print <<<EOT
–>
</div>
</div>
<div class="article-content" style="text-align: center;">
<p><a href="$options[url]">返回首页</a>
<a href="javascript: history.go(-1);">返回上页</a></p>
</div>
<!–
EOT;
?>
[/code]
第四步:上传相应的错误提示图片到 /images/error/
第五步:修改 .htaccess
先确认 Rewrite rule 生效,然后在文件尾部加入下面几行。
[code lang="plain" title=".htaccess"]
# 自定义错误
RewriteRule ^error-([0-9]+)\.html$ index.php?action=error&code=$1
ErrorDocument 400 /error-400.html
ErrorDocument 401 /error-401.html
ErrorDocument 403 /error-403.html
ErrorDocument 404 /error-404.html
ErrorDocument 500 /error-500.html
[/code]
完成!
神奇,这个有什么用呢?
[quote=雪海潆]神奇,这个有什么用呢?[/quote]
跟整个网站统一的风格,比原来丑丑的404错误好多了。另外错误图片还可以个性化。
这样啊~有趣
You actually explained that very well!