php中使用伪静态_PHP教程
上次简单的说了下php中正则表达式的使用,这一次正则表达式可以派上用场了,学习伪静态需要能够很好的使用正则表达式,那么伪静态和真静态的区别是什么呢,我觉得应该是伪静态可以节约磁盘空间、利于SEO、访问速度上没有真静态那么快。伪静态也是对apache的rewrite机制的使用,下来就来分享下吧
1.使用伪静态首先要确认打开rewrite模块
首先打开httpd.conf,找到LoadModule rewrite_module modules/mod_rewrite.so去掉前面的#即可之后重启apache,使用phpinfo确认重写模块成功启用
看到有红色这个就说明rewrite已经启用成功了喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8L3A+CjxwPjIuyrnTw86xvrLMrNKqz8jU2kRpcmVjdG9yecDvvNPSu77kQWxsb3dPdmVycmlkZSBBbGw8L3A+CjxwPtXi0ru+5L/J0tS809TaYXBhY2hltcRodGRvY3O1xERpcmVjdG9yeb3atePA77vy1d/Q6cTi1ve7+rXERGlyZWN0b3J5vdq148DvPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">
3.apache指定首页面、错误页
首先新建一个.htaccess文件,一般是先新建一个xx.txt文件另存为即可,这个文件我就放到项目的根目录,这个文件的内容如下
DirectoryIndex index.php
ErrorDocument 404 /static2/404.php
下面先来测试404,我们先访问一个不存在的php看看404生效没有,这个是我的错误页面
<?php echo "错误页面"; ?>
下面是运行截图
首页的html如下
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>系统首页</title> </head> <body> 欢迎 </body> </html>
我们直接把地址定位到根目录,回车后就能看到我们的这个首页了
还有这么一种情况需要考虑那就是访问的时候apache列出目录结构的问题,其实很简单就在.htaccess加一句Options None,需要注意的是Directory里就不能配置Options了,否则会出现403错误
4.伪静态的使用
http://localhost/static2/view-sports-id5.html类似这种url我们应该见过很多了,这种就是一种伪静态的url了,我们看上去访问的是一个静态的html但其实不是,类似这种url像sports和id后面的5可能就是程序中要使用的参数,我们访问的其实是一个动态页面。这样的话比较利于SEO,下面上一段配置给大家看看
<IfModule rewrite_module> RewriteEngine on RewriteRule view-([a-zA-Z_]+)-id(\d+)\.html news.php?type=$1&id=$2 </IfModule>
RewriteEngine on的意思是启用apache的rewrite引擎
RewriteRule表示重写规则,第一个空格后面的是正则规范后面的news.php?type=$1&id=$2才是真正访问的php页面,$1表示前面正则规范的第一个子表达式的值,$2以此类推,这样我们就可以在news.php取得参数的值
同样的如果是控制器也可以在相应文件夹里写一个.htaccess,之后加上我们的重写规则
5.使用.htaccess来控制访问权限
日常的开发中我们可能在项目里面写了DAO,控制器,工具类这一大堆的php,而这些文件我们是不希望别人通过浏览器访问到,这种情况使用session来限制似乎也不奏效,这种情况使用重写规则就很简单了
RewriteRule [a-zA-Z0-9_]+\.class\.php 403.html
这样写一句程序之外访问就跳转到另外一个页面,实现了访问的控制
6.RewriteCond的使用
有时我们需要判断在某种情况下才使用重写,这种情况就要使用RewriteCond了,例如我们可以判断请求的是不是一个文件(或不存在的文件),如果满足条件才执行重写规则
#如果请求的不是一个文件
RewriteCond %{REQUEST_FILENAME} !-f
#并且不是一个目录
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ccc.html index.php
这段配置的意思就是如果请求的ccc.html如果不存在则跳转到index,php
再来看最后一段配置
<ifModule rewrite_module> RewriteEngine On #你怎么知道,这个请求就是www.hsp.com发来的. referer #如果你请求的是一个jpg图片, 就禁止 RewriteCond %{HTTP_REFERER} !www.hsp.com RewriteRule .*\.jpg -[F] </ifModule>
最后总结一下,日常开发中并不是所有的页面都要静态化,例如后台系统、基金股票等要求实时性很高的页面或网站、实时话费或流量查询页面、学历查询页面不适合静态化,对应内容相对稳定的例如宣传性质的网站首页可以考虑使用真静态,如果不想使用真静态但是又希望利于SEO伪静态应该是一个不错的选择。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。
