有关wordpress文章页面出现404的问题
修复的时候总结了一下原因:
- 未开启apache的rewrite功能
- .htaccess文件中的伪静态规则配置错误
- 由于目录存在中文,编码问题导致
解决方案:
1.未开启apache的rewrite功能 :
使用命令sudo a2enmod rewrite 开启mod_rewrite,然后修改配置文件apache2.conf/httpd.conf,最后 service apache2 restart 重启apache2
在Debian/Ubuntu源中,Apache超文本传输协议(HTTP)服务器的主程序名为apache2
首先找到apache2.conf的位置find . -name apache2.conf,默认路径是/etc/apache2/apache2.conf,vi 打开之后修改将如下三处代码的NONE修改为All(我这里是修改之后的)。
在非Debian/Ubuntu源中,Apache超文本传输协议的主程序名为httpd
将以上方法的apache2.conf改成httpd.conf即可,默认路径是 /etc/httpd/conf/httpd.conf
在非Debian源中,还要找到“LoadModule rewrite_module modules/mod_rewrite.so”如果前面有“#”就删掉就可以了
2. .htaccess文件中的伪静态规则配置错误:
.htaccess文件(分布式配置文件),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
正常情况下.htaccess文件是 WordPress 自动配置好的,但是有各种各样的原因没有生成.htaccess文件或没有将新的重写规则写到已存在的.htaccess文件中,这时需要手动更改。.htaccess在wordpress的根目录下,但是是隐藏文件,需要用ls -al查看,于是我们vi (wordpress根目录)/.htaccess,并复制粘贴下列伪静态规则。
<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ – [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule>
3.由于目录存在中文,编码问题导致
文章内容404还有可能是目录含有中文导致的,因为文章标题是中文,在固定链接路径中就会含有中文,此时可能会出现某魔幻编码问题,而解决办法也很简单,使用WP固定链接中唯一不含文章名的**”朴素“**就解决了。
某魔幻编码问题,而解决办法也很简单,使用WP固定链接中唯一不含文章名的**”朴素“**就解决了。