什么是伪静态?伪静态有何作用

什么是伪静态?伪静态有何作用,第1张

  一、什么是伪静态,伪静态有何作用

  伪静态即是网站本身是动态网页如。asp、。php、。aspx等格式动态网页有时这类动态网页还跟“”加参数来读取数据库内不同资料。很典型的案例即是discuz论坛系统,后台就有一个设置伪静态功能,开启伪静态后,动态网页即被转换重写成静态网页类型页面,通过浏览器访问地址和真的静态页面没区别。前提服务器支持伪静态重写URL Rewrite功能。

  

   二、需要伪静态功能地方

  考虑搜索引擎优化SEO,将动态网页通过服务器处理成静态页面,常见的论坛帖子页面,都是经过伪静态处理成静态页面格式html页面。

  考虑网站所用的程序语言不易被发现,经过重写来伪静态来将动态网页的程序后缀变为html的静态页面格式。

  

  三、伪静态的利与弊

  当然犹如一篇文章的作者所说的:"如果流量稍大一些使用伪静态就出现CPU使用超负荷,我的同时在线300多人就挂了,而不使用伪静态的时候同时在线超500人都不挂,我的IIS数是1000。”

  确实是这样的,由于伪静态是用正则判断而不是真实地址,分辨到底显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升,确实是伪静态最大的弊病。

  我们应该选择伪静态还是真静态

  1、使用真静态和假静态对SEO来说没有什么区别

  2、使用真静态可能将导致硬盘损坏并将影响论坛性能

  3、使用伪静态将占用一定量的CPU占有率,大量使用将导致CPU超负荷

  4、最重要的一点,我们要静态是为了SEO

  所以:

  1、使用真静态的方法可以直接排除了,因为无论怎么生成,对硬盘来说都是很伤的。

  2、既然真伪静态的效果一样,我们就可以选择伪静态了。

  3、但是伪静态大量使用会造成CPU超负荷。

  4、所以我们只要不大量使用就可以了。

  5、既然静态只是给SEO看的,我们只需要伪静态给SEO就行了,不需要给用户使用。

  6、所以我们只要在专门提供给SEO爬的Archiver中使用伪静态就可以了。

  7、谢谢大家耐心看我写的文章。

  8、有何不解的地方或是有不同的看法欢迎提出。

  

  四、关于伪静态和真静态的评论

  真正的静态化和伪静态还是有本质的区别的。为浏览用户处理一个纯粹htm和一个调用多个数据的asp在CPU的使用率方面明显前者少。记得原来有个人说html下载硬盘读写频繁,他这么说好像读取数据库不用读写磁盘似的,何况还有一大堆缓存的零散asp也是放在硬盘的,这些读取不用磁盘操作么可笑。

  

  读取单个htm+Flash等附件就可以实现的目的,何苦要读数据库又要读asp缓存文件又要重新整合数据输出再+Flash等附件这么大费周章呢CMS首页不需要很多的互动的,论坛那一套不应该拿到这里来用,相反应该更多考虑的是:美观!兼容!信息的直观!性能!还有稳定!

Linux下nginx支持htaccess文件实现伪静态的方法

From:http://hibaiducom/yhzstar/blog/item/d61b36237cd6a37a35a80f8ahtml

方法如下:1 在需要使用htaccess文件的目录下新建一个htaccess文件,

如本人的一个Discuz论坛目录:vim /var/www/html/168pc/bbs/htaccess2 在里面输入规则,我这里输入Discuz的伪静态规则(这里仅增加Discuz的伪静态规则):# nginx rewrite rule

rewrite ^()/archiver/((fid|tid)-[w-]+html)$ $1/archiver/indexphp$2 last;

rewrite ^()/forum-([0-9]+)-([0-9]+)html$ $1/forumdisplayphpfid=$2&page=$3 last;

rewrite ^()/thread-([0-9]+)-([0-9]+)-([0-9]+)html$ $1/viewthreadphptid=$2&extra=page%3D$4&page=$3 last;

rewrite ^()/profile-(username|uid)-(+)html$ $1/viewprophp$2=$3 last;

rewrite ^()/space-(username|uid)-(+)html$ $1/spacephp$2=$3 last;

rewrite ^()/tag-(+)html$ $1/tagphpname=$2 last;

# end nginx rewrite rulewq保存退出。3 修改nginx配置文件:vim /etc/nginx/nginxconf4 在需要添加伪静态的虚拟主机的server{}中引入htaccess文件,如图所示:(注意第8行)

include /var/www/html/168pc/bbs/htaccess;(把这个改成你htaccess文件的具体位置)wq保存退出。5 重新加载nginx配置文件:/etc/initd/nginx reload

文章参考:http://wwwha97com/942html

服务器上配置好之后,登录discuz!软件后台(以最新正式版discuz!X25为例),全局,SEO设置,勾选可用,提交。查看rewrite规则,做成htaccess文件,放到discuz目录即可实现discuz!伪静态。(DZ动力)

首先

打开source\function下的function_corephp

找到

if($type ==

'forum_forumdisplay') {

list(,,, $fid, $page, $extra) =

func_get_args();

$r = array(

'{fid}' =>

empty($_G['setting']['forumkeys'][$fid]) $fid :

$_G['setting']['forumkeys'][$fid],

'{page}' => $page $page :

1,

);

} elseif($type == 'forum_viewthread') {

list(,,, $tid, $page, $prevpage, $extra) = func_get_args();

$r =

array(

'{tid}' => $tid,

'{page}' => $page

$page : 1,

'{prevpage}' => $prevpage && !IS_ROBOT

$prevpage : 1,

);

改为

if($type == 'forum_forumdisplay') {

list(,,, $fid, $page,

$extra) = func_get_args();

$r = array(

'{fid}' =>

empty($_G['setting']['forumkeys'][$fid]) $fid :

$_G['setting']['forumkeys'][$fid],

'{page}' => $page ,

);

} elseif($type == 'forum_viewthread') {

list(,,, $tid, $page, $prevpage, $extra) = func_get_args();

$fid =

DB::result_first("SELECT fid FROM "DB::table('forum_thread')" WHERE tid =

'$tid'");

$r = array(

'{fid}' =>

empty($_G['setting']['forumkeys'][$fid]) $fid :

$_G['setting']['forumkeys'][$fid],

'{tid}' => $tid,

'{page}' => $page ,

'{prevpage}' => $prevpage

&& !IS_ROBOT $prevpage : 1,

);

然后进入网站后吧->''seo设置"->"url静态化"

在"论坛主题列表页"的格式中填写:{fid}/{page}

在"论坛主题内容页"的格式中填写:{fid}/m{tid}/{page}

然后工具,更新缓存,即实现了版块目录化,贴子目录化

在"论坛"-"版块管理"中的"绑定别名"即是版块目录名

把下面这段代码复制到你的htaccess文件里,如果没有就新建一个,放到网站跟目录

# 将 RewriteEngine 模式打开

RewriteEngine On

# 修改以下语句中的RewriteBase 后的地址为你的论坛目录地址,如果程序放在根目录中,为 /,如果是相对论坛根目录是其他目录则写为 /{目录名},如:在bbs 目录下,则写为 /bbs

RewriteBase /

# Rewrite 系统规则请勿修改

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^topic-(+)\html$ portalphpmod=topic&topic=$1&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^article-([0-9]+)-([0-9]+)\html$ portalphpmod=view&aid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^(\w+)/([0-9]+)$ forumphpmod=forumdisplay&fid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^thread-([0-9]+)-([0-9]+)\html$ forumphpmod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^group-([0-9]+)-([0-9]+)\html$ forumphpmod=group&fid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^space-(username|uid)-(+)\html$ homephpmod=space&$1=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^([a-z]+)-(+)\html$ $1phprewrite=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule forum-([0-9a-z_]+)-([0-9]+)\html$ forumphpmod=forumdisplay&fid=$1&page=$2&%1

## 保留前面的部分可以不影响已经被搜索引擎收录的页面

RewriteCond %{QUERY_STRING} ^()$

RewriteRule /([0-9]+)(/([0-9]+))(/)$ forumphpmod=viewthread&tid=$1&extra=page\%3D$5&page=$3&%1 [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^([0-9a-z_]+)(/([0-9]+))(/)$ forumphpmod=forumdisplay&fid=$1&page=$3&%1 [L,NC]

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 什么是伪静态?伪静态有何作用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情