① php生成伪静态html利于seo还是直接生成静态利于SEO
PHP网站优化,动态网站生态静态页和实现伪静态是必走之路,一般采用路径伪静态和页面静态两种方面。
至于优缺点,首先,我们要明确两个概念:
1、伪静态是将动态语言的后缀通过一定的手段,转为 html后缀,服务器上实际访问的是动态的地址。这叫伪静态。蜘蛛对html后缀的网页比较友好。不少网站就采用这样的方式,这样可以欺骗蜘蛛.达到seo优化的效果。
2、生成静态,是将脚本执行过后的内容输入到文本中。这样,下次再请求,就不用服务器去处理了。而是直接返回文本中的内容。这样可以加快访问的速度。
各自的缺点:
1、伪静态访问是实时生产页面,访问量大了就会占用很大的CPU资源。影响服务器处理速度。
2、静态页生成页面,内容多时就会产生更多的磁盘碎片。
但一般企业型网站,内容本身都不多,影响都不大。
什么样的情况下用好?
1、使用联动数据的,需要调用数据库数据实时显示的,最好用伪静态。如果是超大型的网站,比方说同一个程序开发的网站数据量超过百万以上,我们还是主张不要全部采用生成静态页的方式,即使是世上最好的程序员开发出来的,性能最好的内容管理系统。因为生成静态页首页是维护起来比较麻烦,服务器里所生成的文件目录和文件都是比较多的,而且将严重耗费时间和服务器资源和性能。
2、页面简单,内容相对固定的,益用静态页。
3、适当相互结合。
一般大型门户网站都是在采用多个程序,多个服务器,多个二级域名的战略。一个网站肯定会采用很多不同类型的程序和开源程序综合使用,可以把核心的版块和栏目实现静态化。更有利于搜索引擎抓取和减轻服务器的压力。
② php如何生成静态页面
lz只是想要主页生成静态吗?这种问题我回答过,也许可以帮助你
如果是这样就在你的主页(index.php)同一文件夹下建立index0.php并保证当前文件夹可以写入
index0.php代码如下
<?php
ob_start(); //将这里以后的所有输出内容保存
include('index.php'); //加载原首页
$write=ob_get_contents(); //ob_get_contents函数获取输出内容,兼容php4以上版本
if (!$fh = fopen('index.html', 'w')) {
exit("不能打开文件 'index.html'");
}
if(fwrite($fh,$write)===false){
exit("不能写入文件 'index.html'");
}
fclose($fh);
echo "静态首页成功更新!"
?>
每次打开这个页面(index0.php),都会直接显示你的首页(动态地)并将显示的东西写入index.html文件,并在最后显示是否成功更新。当然你可以选择不显示更新状态,看你喜欢如何
以后你就可以通过访问index0.php来生成静态首页,静态首页为index.html
③ 如何用PHP输出静态页面
用PHP输出静态页面有2种方法
一种是利用模板技术,另一种是用ob系列函数。两种方法,看起来都差不多,但是实际上,却是不同的。
第一种:利用模板
目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smarttemplate等。
它们每一种模板,都有一个获取输出内容的函数。
我们生成静态页面的方法,就是利用了这个函数。
用这个方法的优点是,代码比较清晰,可读性好。
这里我用smarty做例子,说明如何生成静态页
<?php
require('smarty/Smarty.class.php');
$t=newSmarty;
$t->assign("title","HelloWorld!");
$content=$t->fetch("templates/index.htm");
//这里的fetch()就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
$fp=fopen("archives/2005/05/19/0001.html","w");
fwrite($fp,$content);
fclose($fp);
?>
第二种方法:利用ob系列的函数
这里用到的函数主要是ob_start(),ob_end_flush(),ob_get_content(),
其中ob_start()是打开浏览器缓冲区的意思,
打开缓冲后,所有来自PHP程序的非文件头信息均不会发送,
而是保存在内部缓冲区,直到你使用了ob_end_flush().
而这里最重要的一个函数,就是ob_get_contents(),
这个函数的作用是获取缓冲区的内容,相当于上面的那个fetch(),
道理一样的。代码:
<?php
ob_start();
echo"HelloWorld!";
$content=ob_get_contents();//取得php页面输出的全部内容
$fp=fopen("0001.html","w");
fwrite($fp,$content);
fclose($fp);
?>
④ phpcms 我生成静态文件路径是/html , 但是生成的页面上的url也带着html啊,怎么能去掉这个
1 修改配置文件。找到\caches\configs\system.php 找到“html_root”这一项,然后把/html这个字符串删除。
创建或者修改栏目时,在“生成HTML设置”中,设置“是否生成到根目录”为 “是”
然后更新缓存,更新url更新栏目、更新内容页面。更新首页