一聚教程网:一个值得你收藏的教程网站

热门教程

Wordpress中伪静态中文标题404错误问题

时间:2022-06-25 18:58:42 编辑:袖梨 来源:一聚教程网

如果服务器支持伪静态的话,就直接在服务器设置不用配置问题和代码

2.postname是中文的时候,会报错404找不到页面。这个时候不是说文章地址不对。

是wp没法给你解析,这时候,如果你重新编辑一下url就可以找到这个文章了。


这地方,就需要一个插件:

WordPress 中文Url自动转为英文Url的插件: WP Slug Translate 。

直接搜索,在线安装就可以。选择配置成中文翻译成英文。

IT分享Wordpress设置iis7伪静态,中文标题伪静态,wp中文标题伪静态


注意:使用该插件后,新发布的文章都会自动翻译成英文url,但是已存在的不会翻译。

你可以通过编辑或者全选一起更新一下就行了。

另一种解决办法(通用方法)

具体的操作就是打开wordpress目录下的wp-includes文件夹,然后修改classes.php这个文件的两句代码:
首先将:

 代码如下 复制代码
$pathinfo = $_SERVER['PATH_INFO'];
上面这句代码替换成下面的这句代码:
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);

然后再将:

 代码如下 复制代码
$req_uri = $_SERVER['REQUEST_URI'];

上面这句代码替换成下面的这句代码

 代码如下 复制代码
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”);

这种直接修改文件的有一定的风险,为了避免修改失误对网站带来破坏,最好事先备份classes.php这个文件,或者我们直接下载wordpress安装包,修改完之后再上传到服务器上

下面以西部数码主机为例:(apache)

进入控制面板,点击 ISAPI 筛选器--点击开启自定义URL静态化支持,这个时候通过ftp软件进入网站目录--再打开/others/discuz/httpd.conf文件

在httpd.conf里面加入以下规则。

 代码如下 复制代码
# Protect httpd.ini and httpd.parse.errors files  
# from accessing through HTTP  
# Rules to ensure that normal content gets through  
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] 

有些主机商自定义设置isapi筛选器需要自己上传Rewrite的dll文件(下载见最下面),上传搞定之后,可以将以上代码用记事本保存下来,注意要在文件里面,补充以下内容在以上规则前面

 代码如下 复制代码
[ISAPI_Rewrite]  
# 3600 = 1 hour  
CacheClockRate 3600  
RepeatLimit 32 

再把文件后改为httpd.ini然后上传到网站根目录即可。

2.不支持urlwrite

这种情况下可以通过设置404页面的方法实现wordpress在win主机下的伪静态。

新建一个记事本,在里面写入下面代码保存,重新命名为404.php。上传到程序根目录。

代码:

 代码如下 复制代码
$qs = $_SERVER['QUERY_STRING'];  
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);  
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];  
include('index.php');  
?>  

进入网站后台管理开启动态404页。

第二:wordpress中文标签问题

有的时候以上设置会导致中文标签和一些相关地方的tags等无法找到,解决办法是查找wp-includes/classes-wp.php(wp3.2.1其他版本自己找一下)中如下代码:

 代码如下 复制代码

if ( isset($_SERVER['PATH_INFO']) )  
$pathinfo = $_SERVER['PATH_INFO'];  
else 
$pathinfo = '';  
$pathinfo_array = explode('?', $pathinfo);  
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);  
$req_uri = $_SERVER['REQUEST_URI']; 
修改为:

if ( isset($_SERVER['PATH_INFO']) )  
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'utf-8', 'GBK');  
else 
$pathinfo = ”;  
$pathinfo_array = explode('?', $pathinfo);  
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);  
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'utf-8', 'GBK'); 

最后提供两个文件的下载第一个如果是西数主机在开启isapi自定义之后可以把这个文件直接上传代替以前那个。第二个文件是放到程序根目录的时候的文件。

iis7下解决方法有点不一样

将下列代码加入到web目录下的web.config文件的之后即可。

 代码如下 复制代码

  


   
   


   

   


   
   
   

  

热门栏目