WordPress设置固定链接404-导致无法访问的解决办法

经常看到很多其他的网站上面地址链接是.html这种格式结尾的,比如本站今天实现的效果,https://soujiz.com/102.html,而WordPress默认都是带“?”加参数的动态网页格式。后来了解了一下,这个方法叫伪静态,对SEO,搜索引擎友好,所以站长也试了试,已成功,下面分享大家。

一,静态解释

伪静态即网站本身是动态网页如.php、.asp、.aspx等格式,而这类网页还带“?”加参数来读取数据库。开启伪静态后,动态网页即被转换重写成静态网页类型页面。更好的迎合搜索引擎工作原理的爬行抓取机制,

经常听说动态页面和静态页面,那么伪静态页面是什么呢?搞清楚这个概念前,我们先要了解一下动态页面和静态页面区别?

WordPress设置固定链接404-导致无法访问的解决办法插图
  • 动态页面:用ASP、PHP、JSP、ASP.net、Perl、或CGI等编程语言制作,不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页,内容存在于数据库中,根据用户发出的不同请求,其提供个性化的网页内容。
  • 静态页面:静态页面的URL链接是以.html、htm、.shtml、.xml为链接后缀,存在于服务器上的一个文件,每个网页都是一个独立的文件,内容直接保存在文件中,没有连接数据库。

理解以上两个概念后,就能非常容易的理解什么是伪静态了,即从文件后缀来看和静态页面一样,但是实际上他是个动态页面,只是通过技术手段伪装成立静态页面的样子,伪静态页面的内容是通过读取数据库生成的。

我们还是非常希望能够将我们的wordpress设置成为伪静态方式,下面就来说一说,如何设置wordpress的伪静态。

二,伪静态作用

用过wordpress的,应该都知道wp默认的链接是动态链接,而搜索引擎对动态的链接收录不是很友好,所以基于伪静态对搜索引擎更加有好的原因,所以我们还是非常希望网站wordpress链接设置成为伪静态方式。

1、更好的迎合搜索引擎工作原理的爬行抓取机制;
2、把网站URL静态化更有助于网站获得好的排名;
3、URL静态化有利于用户体验、不容易出错;
4、可以提高网站访速度、完全性、稳定性。

三,检测和开启网站伪静态

1,检测主机是否支持伪静态:在WP后台 > 设置 > 固定链接,设置为自定义结构, 或者非默认带?的那种结构,然后打开自己网站访问任何一篇文章,如果出现 404 错误,说明你的主机当前不支持 WordPress 伪静态。就需要进行伪静态规则配置处理。

WordPress设置固定链接404-导致无法访问的解决办法插图1

2,开启网站伪静态链接设置,打开WordPress的后台-设置-固定链接-自定义结构,填写“/%post_id%.html” ,上图其实相当于已经开启了wordpress网站的伪静态

3,然后根据主机环境,选择下面对应合适自己的,(IIS/Apache/Nginx)的规则配置修改即可。

三,(Apache/Nginx/IIS)

1,Nginx规则

Nginx环境一般是Linux 主机,VPS或服务器等用户用的比较多,这些用户一般都会自己配置Nginx,打开 nginx.conf 或者某个站点的配置环境,比如 soujiz.com.conf(不同人配置的不一样),在  server   { } 大括号里面添加下面的代码:

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

提示:如果以上规则不适用,请自己查看WP官方配置Nginx环境文档:https://codex.wordpress.org/Nginx

2,Apache伪静态规则

Apache是 Linux 主机下常见的环境,现在一般的 Linux 虚拟主机都采用这种环境。新建一个 htaccess.txt 文件,添加下面的代码:

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

然后上传到 WordPress 站点的根目录,重命名为 .htaccess 即可

3,IIS伪静态规则

IIS 环境是 Windows 主机常用的服务器环境,新建一个 txt 文件,将下面的代码添加到文件中:

[ISAPI_Rewrite]
# Defend your computer from some worm attacks
#RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
# 3600 = 1 hour

CacheClockRate 3600
RepeatLimit 32
 
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets through

RewriteRule /tag/(.*) /index\.php\?tag=$1
RewriteRule /software-files/(.*) /software-files/$1 [L]
RewriteRule /images/(.*) /images/$1 [L]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [L]
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule /wp-(.*) /wp-$1 [L]
# For normal wordpress content, via index.php
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]

然后另存为 httpd.ini 文件,上传到WordPress站点的根目录即可。

四,本站配置案例:

说明:本站使用的是Nginx环境,看了阿里云文档是这样说的,如下图设置的

WordPress设置固定链接404-导致无法访问的解决办法插图2

所以按照提示,我就到控制台看了下配置,

WordPress设置固定链接404-导致无法访问的解决办法插图3

找了到了配置Nginx环境的对应位置,添加配置代码设置设置,

然后打开自己WordPress的后台-设置-固定链接-自定义结构,填写“/%post_id%.html” 设置后就自己网站就可以成功实现伪静态效果了,

© 版权声明
THE END
喜欢点个赞支持一下吧
点赞0赏币
分享
评论交流 抢沙发

请登录后发表评论