实现 WordPress for BAE 的404页面在原 URL 输出
先吐槽一下:我说现在站长这个称呼怎么越来越不值钱了,在各种简易建站程序满天飞的年代,是个人都能建个网站,各种伸手党更是遍地都是,搜索引擎就能解决的事,非得问别人。
在实现 YouBBS for BAE Issue 11 的时候,我发现 BAE 配置文件中的 errordoc 无论指向静态文件还是动态文件,都会跳转,对用户体验不太好,在反复测试后,终于找到了解决办法,不太好,但管用。
解决方法很简单,删掉
1 | |
在最后加入
- url : ^/.+$ script : wp-content/themes/inove/404.php
这里的 wp-content/themes/inove/404.php 只是个示例,至于怎么写那是你的事了,但至少应该有
header('HTTP/1.1 404 Not Found');
header('Status: 404 Not Found');
最后附上我的 app.conf 供参考
handlers:
- errordoc : 403 static/error/403.html
- errordoc : 500 static/error/500.html
- expire : .jpg modify 10 years
- expire : .swf modify 10 years
- expire : .png modify 10 years
- expire : .gif modify 10 years
- expire : .JPG modify 10 years
- expire : .ico modify 10 years
- expire : .js modify 10 years
- expire : .css modify 10 years
- url : ^/favicon\.ico$
script : static/favicon.ico
- url : ^/robots\.txt$
script : static/robots.txt
- url : ^/sitemap\.xml$
script : sitemap.xml
- url : ^/sitemap_baidu\.xml$
script : sitemap_baidu.xml
- url : ^/sitemap\.html$
script : sitemap.html
- url : ^/sitemap\.xml\.gz$
script : sitemap.xml.gz
- url : ^/error/(.+)$
script : error/$1
- url : ^/static/(.+)$
script : static/$1
- url : ^/wp\-admin/$
script : wp-admin/index.php
- url : ^/wp\-admin/(.+)$
script : wp-admin/$1
- url : ^/wp\-content/(.+)$
script : wp-content/$1
- url : ^/wp\-includes/(.+)$
script : wp-includes/$1
- url : ^/\d\d\d\d/\d\d$
script : index.php
- url : ^/\d\d\d\d/\d\d/feed$
script : index.php
- url : ^/\d\d\d\d/\d\d/page/\d+$
script : index.php
- url : ^/category/.+$
script : index.php
- url : ^/tag/.+$
script : index.php
- url : ^/page/\d+$
script : index.php
- url : ^/author/.+$
script : index.php
- url : ^/about$
script : index.php
- url : ^/about/feed$
script : index.php
- url : ^/feed$
script : index.php
- url : ^/comments/feed$
script : index.php
- url : ^/.+\.html$
script : index.php
- url : ^/.+\-.+\.html/feed$
script : index.php
- url : ^/.+\-.+\.html/trackback$
script : index.php
- url : ^/$
script : index.php
- url : ^/(.+)\.php$
script : $1.php
- url : ^/.+$
script : wp-content/themes/inove/404.php
至于 403 和 500 为什么没这么做,我没有找到 WordPress 中有返回 403 的地方,而 500 是服务器错误,你想想服务器都出问题了,还怎么执行 php 文件?
越来越讨厌 WordPress 的编辑器了……
实现 WordPress for BAE 的404页面在原 URL 输出
https://www.sinosky.org/404-page-not-rewrite-of-wordpress-for-bae/