找不到WordPress主题的404.php,服务器默认为阿帕奇自己的404页面

时间:2014-03-26 作者:Jaromír the Greenhorn

如果我只是在我的Wordpress安装中键入一些引起404错误的内容,Wordpress不会加载自己的404。php文件,但会显示Apache服务器自己的404错误消息。

我的Wordpress安装有什么问题?我是否需要编辑Apache服务器的配置文件并重定向到Wordpress 404。php页面

更新:

我已经部分成功地完成了这项工作,我错过了FileInfo 中的指令/etc/apache2/sites-available/default 文件不过,并不是所有的东西都能被优雅地捕捉到。

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

事情正在按他们应该的方式进行,而且可能是他们能够工作的唯一方式。让我解释一下。

没有名为mod_rewrite (或等效的Nginx或IIS组件)对PHP页面的请求必须转到实际的文件系统文件。这就是您看到的请求,如192.168.1.8/wordpress/?p=123. 正在访问的文件是directory "index" file-- index.php. 该请求相当于192.168.1.8/wordpress/index.php?p=123. 您所做的是请求其他文件/目录,请求如下--192.168.1.8/wordpress/asdasdasd-- 文件系统中不存在这样的文件或目录。

具有mod_rewrite.htaccess 正确配置all requests 发送到index.php. Take a look at the stock WordPress .htaccess file:

# 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
那个RewriteRule 将所有内容(几乎所有内容)推到index.php. 这使得WordPress可以处理任何请求,甚至是对系统中物理上不存在的文件的请求。

如果没有启用pretty permalinks,也就是说,在选择了“default”permalinks的情况下,WordPress甚至不会尝试解析请求,因此这相当于没有mod_rewrite.htaccess 完全

而且,如果WordPress无法解析请求,WordPress将无法加载主题的404.php. 当然,Apache仍然知道请求不正确,并加载自己的404消息。

所以,没有mod_rewrite, a适当的.htaccess 文件,以及您所描述的行为,这正是事情应该如何工作的。

SO网友:TheDeadMedic

如果启用了pretty permalinks,WordPress将只处理404-进入设置>permalinks并选择默认选项以外的一个选项(或使用您自己的选项)。

结束

相关推荐

将WPMS从Apache迁移到IIS7导致数据库错误

//请务必阅读底部的更新我在XP 2003服务器上的XAMPP上有一个大型多站点安装,正在尝试将其从XAMPP/Apache移动到一个新的带有IIS7的Windows 2008服务器。我可以成功地安装新的WP并运行,并且可以让多站点完美地工作。当我导入旧的WPMS MySQL数据库并更改DB_NAME 在我的wp-config.php 如果要使用旧的WPMS数据库而不是新的WPMS数据库,我会遇到“建立数据库连接时出错”这是我的wp-config.php 设置:// ** MySQL settings -