wordpress下的自写php代码如果遇到500就会出现wordpress的404错误,何解?

2013-11-02 08:10:44 +08:00
 ejin
自写的php程序跟php没有半毛钱关系,就是自己自用的其它功能的,也不依赖wordpress,文件夹也是新建的,只是这个站是wordpress为主的,不得不放在里面。

记得wordpress的网址重写规则是,当文件不存在或者文件夹不存在时,重写到/index.php。

但是我经常写php遇到500错误的时候,都会变成wordpress的404页面。

另外也不是所有500错误都会变成wordpress的404页面,是有些情况,说不来为什么,因为有些错误php会直接报错,正常的返回错误。有的500错误直接返回wordpress的404页面。

php会出现wordpress的404页面时,并非是php跳转或者读取了不存在的文件,因为根本没有对文件操作。
2796 次点击
所在节点    PHP
11 条回复
chairuosen
2013-11-02 09:07:31 +08:00
子文件夹没单独设置.htaccess好像会用根目录的,你又肯定设置了伪静态所以可能会交由wp判断一下?猜的
ericls
2013-11-02 09:53:06 +08:00
找不到500错误的页面?
sophy
2013-11-02 10:11:04 +08:00
因为没有500错误页面,所以就404了
yanwen
2013-11-02 10:17:48 +08:00
删掉站点下面的.htaccess,然后再wordpress后台重新设置一下伪静态。
ejin
2013-11-02 14:00:10 +08:00
@chairuosen
@ericls
@sophy

我觉得是不是我没描述清楚呢,php错误不应该是直接输出在页面上的吗?我也没关闭输出500错误啊?为什么需要500页面?(我知道你们说的是500单独一个页面显示500错误,但是我是需要显示报错的,所以500页面自然就不需要了吧)而且平时语法错误,忘记打分号都是会报错并中断的。

而且在htaccess中也没自定义错误页面。

@yanwen
我的htaccess很正常,而且平时访问也没问题,问题出在有500错误的时候,会出现WP的404页


顺便贴上我的htaccess吧,只有wp目录有。

DirectoryIndex default.html default.htm default.php index.html index.htm index.php
LimitRequestBody 10240000
SetEnv TZ Asia/Shanghai
#AddOutputFilter DEFLATE html htm xml php js css
#<ifmodule mod_deflate.c>
#AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript
#</ifmodule>
Options -Indexes
# BEGIN WPSuperCache
# END WPSuperCache

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
bombless
2013-11-02 15:21:11 +08:00
噗,有可能一开始你对你的500错误的理解有误
chairuosen
2013-11-02 18:10:50 +08:00
@ejin 子目录放个.htaccess写RewriteEngine Off试试呢?
ejin
2013-11-02 18:52:35 +08:00
@chairuosen
还是404。日志里也是404
@bombless
500就是服务器内部错误嘛,根据不同的服务器设置,有可能会直接在页面输出错误告诉我在哪个文件第几行,也可能直接返回一个独立的什么内容都没有的500页面嘛。

当然也有可能是服务器没设置好,htaccess编码不对都可能导致
tonitech
2013-11-02 22:52:25 +08:00
我觉得应该是你的服务器要指向500的错误页面,返回的404应该是找不到500的错误页面。你应该要修改下.htaccess的规则,你可以把php的文件放到你自定义的一个目录里面方便管理和以后添加新的自定义php文件,然后添加一个规则:
RewriteRule ^/替换为自定义目录名(.*)$ /替换为自定义目录名$1 [L]
xzl
2013-11-04 08:54:38 +08:00
@tonitech 正解,如da,404状态其实是因为500.shtml没有找到,认真看一下access.log就知道了。
ejin
2013-11-04 09:31:23 +08:00
@xzl 昨天看了日志的 cpanel的日志里写的是404,路径就是php的路径,所以无法判断,今天有空再试试了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/87774

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX