test1:
<a href="test2php/a/1/b/2html">AAAAAA</a>
test2没错,应该是你访问test2的路径有问题。
一、静态化的优点:
1有利于搜索引擎收录网站页面的信息:搜索引擎更喜欢静态的,更变于抓取,搜索引擎SEO排名会更容易提高。
2静态网页化网页稳定
3可以提高网页加载速度
4减轻服务器负担,浏览器不需要频发调用数据库。
5数据库出错不会影响正常访问
二、伪静态
PHP伪静态:是利用Apache mod_rewite实现url重写的方法
改写访问地址,能够通过URL的PATHINFO模式来改动它。让它看上去更像一个静态页面。从而有更大的几率被搜索引擎抓取和收录,仅是对搜索引擎比较友好,伪静态化
三、纯静态化
纯静态化,就是生成HTML文件的方式,我们须要开启PHP自带的缓存机制,即ob_start来开启缓存。而且在ob_start之前不能有不论什么输出,否则运行失败,然后我们用ob_get_contents函数来获取缓存中的内容,该函数会返回一个字符串。第三个函数就是ob_end_clean,它用来清空缓存中的内容而且关闭,成功返回True,失败返回False。
<php
if(file_exists("matchhtml") && (time()-filemtime("matchhtml"))<300)
{
//如果存在对应的静态文件,则直接访问
require_once("matchhtml");
}else{
//这里用数组来仿真数据库 *** 作,现实一般都是 *** 作数据库得到对应数据
$student = array("huangxing","chenyuwei",'xufei','zhangjingwen','xuepei');
ob_start();
//载入模板
require_once("mubanphp");
file_put_contents("matchhtml",ob_get_clean());
require_once('matchhtml');
}
Apache的 mod_rewrite是比较强大的,在进行网站建设时,可以通过这个模块来实现伪静态。
主要步骤如下: 1检测Apache是否开启mod_rewrite功能 可以通过php提供的phpinfo()函数查看环境配置,找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有开启“mod_rewrite”,则打开目录 apache目录下的“/apache/conf/” ,找到 >
利用htaccess文件对PHP网站进行伪静态处理要考虑两点:
一服务器支持伪静态,比如Apache要开启mod_rewrite模块支持
二利用htaccess完成伪静态需要根据不同的网站系统进行不同的设置,以下是一些常见系统的htaccess设定:
01wordpress:
# BEGIN WordPress
<IfModule mod_rewritec>
RewriteEngine On
RewriteBase /
RewriteRule ^indexphp$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /indexphp [L]
</IfModule>
02Phpwind
RewriteEngine On
RewriteBase /
RewriteRule ^()-htm-()$ $1php$2
RewriteRule ^()simple/([a-z0-9\_]+\html)$ $1/simple/indexphp$2
03Discuz
RewriteEngine On
# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[0-9]+\html)$ archiver/indexphp$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\html$ forumdisplayphpfid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\html$ viewthreadphptid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(+)\html$ spacephp$1=$2
RewriteRule ^tag-(+)\html$ tagphpname=$1
04ecshop
RewriteEngine On
# direct one-word access
RewriteRule ^index\html$ index\php [L]
RewriteRule ^category$ index\php [L]
# access any object by its numeric identifier
RewriteRule ^feed-c([0-9]+)\xml$ feed\php\cat=$1 [L]
RewriteRule ^feed-b([0-9]+)\xml$ feed\php\brand=$1 [L]
RewriteRule ^feed\xml$ feed\php [L]
RewriteRule ^category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-])-([0-9]+)-(+)-([a-zA-Z]+)()\html$ category\php\id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5&page=$6&sort=$7&order=$8 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-])()\html$ category\php\id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9]+)-([0-9]+)-(+)-([a-zA-Z]+)()\html$ category\php\id=$1&brand=$2&page=$3&sort=$4&order=$5 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9]+)-([0-9]+)()\html$ category\php\id=$1&brand=$2&page=$3 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9]+)()\html$ category\php\id=$1&brand=$2 [QSA,L]
RewriteRule ^category-([0-9]+)()\html$ category\php\id=$1 [QSA,L]
RewriteRule ^goods-([0-9]+)()\html$ goods\php\id=$1 [QSA,L]
RewriteRule ^article_cat-([0-9]+)-([0-9]+)-(+)-([a-zA-Z]+)()\html$ article_cat\php\id=$1&page=$2&sort=$3&order=$4 [QSA,L]
RewriteRule ^article_cat-([0-9]+)-([0-9]+)()\html$ article_cat\php\id=$1&page=$2 [QSA,L]
RewriteRule ^article_cat-([0-9]+)()\html$ article_cat\php\id=$1 [QSA,L]
RewriteRule ^article-([0-9]+)()\html$ article\php\id=$1 [QSA,L]
RewriteRule ^brand-([0-9]+)-c([0-9]+)-([0-9]+)-(+)-([a-zA-Z]+)\html brand\php\id=$1&cat=$2&page=$3&sort=$4&order=$5 [QSA,L]
RewriteRule ^brand-([0-9]+)-c([0-9]+)-([0-9]+)()\html brand\php\id=$1&cat=$2&page=$3 [QSA,L]
RewriteRule ^brand-([0-9]+)-c([0-9]+)()\html brand\php\id=$1&cat=$2 [QSA,L]
RewriteRule ^brand-([0-9]+)()\html brand\php\id=$1 [QSA,L]
RewriteRule ^tag-()\html search\php\keywords=$1 [QSA,L]
RewriteRule ^snatch-([0-9]+)\html$ snatch\php\id=$1 [QSA,L]
RewriteRule ^group_buy-([0-9]+)\html$ group_buy\php\act=view&id=$1 [QSA,L]
RewriteRule ^auction-([0-9]+)\html$ auction\php\act=view&id=$1 [QSA,L]
05phpcms
RewriteEngine On
RewriteRule ^()content-([0-9]+)-([0-9]+)-([0-9]+)\html$ $1/index\php\m=content&c=index&a=show&catid=$2&id=
$3&page=$4
RewriteRule ^()show-([0-9]+)-([0-9]+)-([0-9]+)html$ $1/index\php\m=content&c=index&a=show&catid=$2&id=
$3&page=$4
RewriteRule ^()list-([0-9]+)-([0-9]+)html$ $1/index\php\m=content&c=index&a=lists&catid=$2&page=$3
apache的rewrite重写就是根据你输入的地址,访问你重定向以后的实际地址。一般来说,伪静态指的就是url显示的是html的,但是实际访问的是php文件,这叫伪静态。
如果你希望URL显示的就是listphpid=N这种形式,就不是伪静态了,是强制跳转。一般是用于空白页面或者参数不合法时的跳转,如果你真希望这样做,只需要如下修改:
RewriteRule ^list-([0-9]+)\html$ list\php\id=$1 [R]
也就是在重写的末尾加上R,R的意思就是强制跳转。
如果对你有帮助,希望采纳,如果有疑问,可以继续追问或者百度HI留言。谢谢。
以上就是关于php伪静态.全部的内容,包括:php伪静态.、php如何实现网页静态、PHP本地如何实现伪静态页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)