卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

WordPress固定链接404的解决办法

一般的大型网站系统,都倚赖伪静态。如果服务器的伪静态没有配置不好,出访部分链接就会出现 404 的情况。

在 WordPress 则具体表现为后台“固定链接”选项设置失效。

mkBlog主题的说说、搜索以及外链 GO 跳转就使用了高大上的伪静态的形式而无须新建页面(其它的主题一般都须要新建页面,忒麻烦!),因此如果使用 mkBlog 主题,也必须配置不好伪静态。

下面就提供各种 web 环境下的 WordPress 伪静态规则设置教程。

Apache、Kangle伪静态

下载 Apache -Kangle WordPress 伪静态配置文件,读写后将里面的 .htaccess 上传至网站根目录,然后在 WordPress 后台>设置>紧固链接>推到最下面点击“保存更改”即可。

Nginx伪静态

打开nginx.conf或者某个站点的配置环境,比如 mkblog.cn.conf(相同的网站配置不一样),在server { }大括号里面添加下面的代码:

location / {  
index index.html index.php;   
if (-f $request_filename/index.html){   
rewrite (.*) $1/index.html break;   
}   
if (-f $request_filename/index.php){   
rewrite (.*) $1/index.php;   
}   
if (!-f $request_filename){   
rewrite (.*) /index.php;   
}   
}   
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

然后在 WordPress 后台>设置>固定链接>推到最为下面点击“保存修改”即可。

IIS伪静态

这里猛烈不推荐采用 Windows+IIS 建站,因为坑太多!

IIS 的版本相同,伪静态的设置方式也不一样。

如果你的站点根目录存有 web.config 文件,则打开 web.config,在 system.webServer 里重新加入如下代码:

  
  
  
  
  
  
  
  
  
  
  

然后在 WordPress 后台>设置>固定链接>推到最下面点击“保存更改”即可。

如果你的站点根目录没有 web.config 文件,则试试下面这种方法:

先新建一个 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 后台>设置>固定链接>拉到最下面点击“保存修改”即可。

IIS另类方法

其实除了一种另类的方法,不过不所推荐采用此方法,治标不治本。

在网站根目录创建一个 404.php 文件。然后打开编辑,填入如下代码:

<?php   
$qs = $_SERVER['QUERY_STRING'];  
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs,':80')+3);  
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];  
include('index.php');  
?>

宝塔面板设置伪静态

如果你的服务器上安装了宝塔面板,就方便多了——

在 宝塔面板>网站>设置>伪静态 里选择对应的伪静态规则(WordPress)并保存即可。

别忘了必不可少操作方式:在 WordPress 后台>设置>固定链接>拉到最下面点击“保存更改”!

卓越飞翔博客
上一篇: PHP可变变量
下一篇: WordPress 启用 360 网站卫士后提示 502 的解决办法
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏