不会健身的程序员
不是好作家

wordpress伪静态的多种方法

文章中介绍如何使用404错误和url rewrite功能实现wordpress的伪静态,在用wordpress做固定链接想实现静态化的时候,有时候会出现死链。这个时候就需要设置一下WordPress的伪静态了。

伪静态是相对真实静态来讲的。通常我们为了更好的缓解服务器压力,和增强搜索引擎的友好面。都将文章内容生成静态页面。但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。

修改固定链接

不管使用以何种方式实现wordpress伪静态,都需要改变wordpress默认的固定链接方式,修改方法如下。

WordPress控制面板设置固定链接:控制面板 >> 设置 >> 固定链接 >> 自定义结构

在自定义结构中输入/articles/%post_id%.html,这种方式的话,代表使用每篇文章的唯一id后面接.html进行访问,前面还有一节是/articles/这个可以根据个人喜好自己设置,设置这个url的主要原因是要是以后开启了cos-html-cache等插件的话,会生成静态页面,这样规划一个文件夹放置这些页面就有助于管理,不然你直接采用/%post_id%的话,就直接在根目录下生成静态页面会照成根目录拥挤

wordpress还可以支持以下格式,想设置其他链接格式,可参考以下结构标签:
%year%:日志发表的年份,四位数字,如2009
%monthnum%:日志发表的月份,如05
%day%:日志发表的日期,如28
%hour%:日志发表的时间(小时),如15
%minute%:日志发表的时间(分钟),如43
%second%:日志发表的时间(秒),如33
%postname%:日志标题的缩略版本(日志/页面编辑界面上的日志别名)。因此“This Is A Great Post!”在URI中会变成this-is-a-great-post。
%post_id%:日志的唯一ID,如423
%category%:分类名称的缩略版本(添加新分类/编辑界面上的分类别名)。嵌套的子分类会作为嵌套子目录出现在URI中。出于运行方面的考虑,不推荐以%category%作为固定链接的起始部分。
%tag%:标签名称的缩略版本(添加新标签/编辑界面上的标签别名)。出于运行方面的考虑,不推荐以%tag%作为固定链接的起始部分。
%author%:作者名称的缩略版本。

404错误

步骤一:设置虚拟主机的404出错页面

详细请参考各自的虚拟主机控制台进行设置,如果是使用自己的主机那就无需设置。

步骤二:新建404.php

新建一个404.php,上传到wordpress的根目录下(不是主题的根目录),代码参考如下

<?php
    $pos = strrpos($qs, '://');
    $pos = strpos($qs, '/', $pos + 4);
    $_SERVER['REQUEST_URI'] = substr($qs, $pos);
    $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
    include('index.php');
?>

url rewrite – apache

配置步骤

第一步:找到apache的配置文件httpd.conf(文件在conf目录下)

第二步:你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商。

打开httpd.conf,找到

#LoadModule rewrite_module modules/mod_rewrite.so

把#去掉

找到AllowOverride None 改成 AllowOverride All

:AllowOverride 的参数设置为ALL,表示整台服务器上都支持URL规则重写。Apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则就不会有任何效果。

对于不同的网址,需要在APACHE中增加如下内容

<Directory “E:/Apache Group/Apache2/htdocs/leapsoul”>

/*引号里代表你的web存放目录*/

/*如果是Linux,只要你定位到你网站目录即可*/

Options FollowSymLinks

AllowOverride None

</Directory>

第三步:重启apache服务器,先按stop再start。

第四步:在你需要URL重写的网站目录下放一个.htaccess文件,文件名是.htaccess,Windiws下不能直接建立,你可以用记事本另存为。

:我测试的时候在每个需要伪静态的目录下都存放了对应的.htaccess文件,同时在httpd.conf文件中像第二步那样对相关的目录添加了相应的<Directory>..</Directory>代码。

第五步:在.htaccess中通过正则表达式映射需要伪静态的页面。

URL正则表达式如下

RewriteEngine on

RewriteRule index.html index.php

RewriteRule (d+).html$ info.php?infoid=$1

URL规划的方案例子:

www.leapsoul.cn/info/info.php?infoid=100

映射为

www.leapsoul.cn/info/100.html

配置结束。

在Linux下基本上没啥变动,我只修改了相关目录地址,运行正常。

以上就是我关于利用Apache的mod_rewrite对URL重写的具体操作步骤,从而实现了网站URL伪静态化。有需要的朋友可以参考,有更好实现办法的也可以给我留言。

url rewrite – IIS

小林使用的windows的iis服务器,不支持.htaccess url重写,不过可以修改新建httpd.ini放置到网站根目录下,下面是小林的httd.ini文件,提供出来仅供参考

[ISAPI_Rewrite]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /robots.txt /robots.txt [L]
RewriteRule /favicon.ico /favicon.ico [L]
RewriteRule /readme.html /readme.html [L]
RewriteRule /xmlrpc.php /xmlrpc.php [L]
RewriteRule /wap(.*) /wap$1 [L]
RewriteRule /content/uploads/(.*) /content/uploads/$1 [L]
RewriteRule /wp-(.*) /wp-$1 [L]
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]

url rewrite – nginx

修改nginx的配置文件,添加参考下列代码,原文出自nginx官网

    server {
        server_name  blog.path8.net;
        root /var/www/vhost/blog;
        access_log  logs/vhost-blog.path8.net.log  main;

        location /favicon.ico {
                log_not_found off;
                access_log off;
        }
        location /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                index  index.html index.htm index.php;
                # from nginx.org rewrite rule
                # This is cool because no php is touched for static
 try_files $uri $uri/ /index.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ .php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/vhost/blog$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

 

赞(0)
转载请注明出处:林俊龙博客 » wordpress伪静态的多种方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

年年岁岁花相识,岁岁年年人不同

给我留言网站地图

谢主隆恩

支付宝扫一扫打赏

微信扫一扫打赏