【php】利用.htaccess文件使网站静态化,将php页面伪装成html_htaccess伪静态规则 html-程序员宅基地

技术标签: php  静态化  html  URL重写  .htaccess  

其实这部分内容在《【ThinkPHP】ThinkPHP下载、部署,Helloworld,消除难看的index.php》(点击打开链接)已经实现了,只是当时没有意识到其实对于网站下的所有php,都是可以将原本是http://xxx.com/1.php搞成http://xxx.com/1.html,这样一来便于搜索引擎的收录,二来别人不知道你的网站是用什么语言写的。

这部分也是php静态化、URL重写的内容。

一、打开Apache2.4服务器的URL重写功能

1、打开Apache2.4服务器中的httpd.conf,httpd.conf在类似C:\Apache24\conf这个位置。如下图,搜索mod_rewrite.so,大约158行的位置,删除前面的#,让Apache2.4加载了mod_rewrite.so模块


2、继续在httpd.conf配置文件找到“AllowOverride None”将None改为 All。这点值得注意的是,“AllowOverride None”在文件中能找到几处,但要改的却只有一处,如下图,就是在第267行左右的位置,这个AllowOverride None。


之后Apache2.4就弄完了,支持url重写了,重启一下Apache2.4生效。

二、对相关的php站点的url进行重写

1、利用控制台cmd新建一个没有文件名的.htaccess文件,由于这个文件没有这个文件名,在windows中必须通过控制台新建。

输入如下命令,先用cd命令进入此目录,再用type nul>.htaccess新建。

如下图,就是在myTP这个php站点成功建立了一个.htaccess文件


新建完毕,用记事本或者notepad++之类的打开此.htaccess输入如下内容,保存退出:

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteRule ^(.*)\.html$ $1.php [NC]
</IfModule>

以上的表达式意为:

如果通过.html进入,浏览器地址栏显示的是.html扩展名,但服务器上实际执行的是.php。

必须保证服务器上有对应的.php,否则会404

浏览器和搜索引擎可以同时通过.htm和.php访问网页

如果该目录上存在.html,将被忽略

[NC]表示“不区分大小写”。

如下图,这是我的php站点:


里面并没有helloworld.html,仅有如下的一个helloworld.php:

<?php
echo "Hello world!";
?>

通过这样设置之后,如下图,在浏览器访问helloworld.html,用户也觉得自己是在访问helloworld.html,不过实际上却是在执行helloworld.php的代码:


而关于Get参数,在如上配置.htaccess之后同样可以传递,比如在《【php】php中获取任意个参数》(点击打开链接)介绍过了的numUndefindParameter.php:

<?php
	$paramstr=$_SERVER['QUERY_STRING'];//获取参数字符串
	$arr = explode("&",$paramstr);//先根据&这个字符分割一个个参数存入数组$arr
	foreach($arr as $element){//再遍历$arr这个数组
		$arr2= explode("=",$element);//对其中的每一个元素进行根据=进行分割,再存入数组
		echo "${arr2[0]}的值为:${arr2[1]}";//=前面的字符串是参数名,后面的字符串是参数值
		echo "<br/>";
	}
?>

在html后面接一堆参数之后,同样可以得到相应的结果:


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yongh701/article/details/50240533

智能推荐

Python 安全编程学习总结_python you must specify a valid interface name.-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏15次。Python黑帽编程-ARP之一http://blog.csdn.net/supercooly/article/details/53956494参考文章:https://zhuanlan.zhihu.com/p/24645819参考文章:http://bbs.ichunqiu.com/thread-13429-1-1.html一、ARP协议中文名称:地址解析协议_python you must specify a valid interface name.

【solo】环境配置_深度学习solo算法必须要安装mmcv吗-程序员宅基地

文章浏览阅读329次。此帖记录一下SOLO环境配置的过程以及一些问题和解决办法。_深度学习solo算法必须要安装mmcv吗

模板与泛型编程_模版是复用代码的一中机制,利用模版可以进行与类型无关的程序设计-程序员宅基地

文章浏览阅读239次。泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。模板的格式template<typename T1, typename T2,…,typename Tn>返回值类型 函数名(参数列表){}模板分为类模板和函数模板模板它本身并不是函数,是编译..._模版是复用代码的一中机制,利用模版可以进行与类型无关的程序设计

如何将访问的接口去掉token验证_不通微服务开发阶段怎样取消sa_token验证-程序员宅基地

文章浏览阅读9.9k次。如何将访问的接口去掉token验证项目应用:springboot oath2完成此操作需要修改两个模块的application.yml文件修改,一个是getway网关的yml文件,另一个则是接口所在模块的yml文件_不通微服务开发阶段怎样取消sa_token验证

解决SVN Can’t open file ‘/XXX/xxx/db/txn-current-lock’错误_svn cant open file-程序员宅基地

文章浏览阅读1.8w次。今天用非root账号,用sudo 命令 添加了两个账号,然后重启服务···可以正常取出东西,但是不能提交···报的错就是 : 不能打开文件“/var/svn/svnrepos/db/txn-current-lock”: 权限不够查了半天 找到了解决办法,原文链接:http://blog.sina.com.cn/s/blog_7139569d0100woar.htm_svn cant open file

Microsoft Visual Studio 2019正式版离线安装包下载_microsoft vcredist 2019-程序员宅基地

文章浏览阅读2.4w次,点赞11次,收藏44次。原文地址:https://www.bitecho.net/microsoft-visual-studio-2019.html#respondVisual Studio(简称VS)是微软公司的开发工具包系列产品,包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等,并且几乎适用于所有开发平台。微软于4月3日正式发布了Visual Studio 2019正式版,在IDE、性能、常规调试、源控制和Team管理器、编程语言、Web技术、Xamarin移动..._microsoft vcredist 2019

随便推点

深度学习目标检测系列之YOLO9000_yolov9-程序员宅基地

文章浏览阅读2.7k次,点赞6次,收藏6次。1.闲言 在正式的学习之前,我喜欢先放飞一下自我。我觉得技术就是用来聊的,找个酒馆,找些大神,咱们听着音乐一起聊起来。所以我特别希望能把自己的微博写的口语化,就像玩一样。就像古代那些说书人一样,萧远山和慕容博相视一笑,王图霸业,血海深仇,尽归尘土。这是我向往的一种表达方式,但是我现在还达不到那个境界,只能尽力而为吧。2.YOLOV2 1.十个改造点 yolov1提升了目标检测的速度,但是在MAP方面却掉了上去。所以说铁打的大神,流水的模型..._yolov9

自学微信二次开发(1)_微信 电脑端 二次开发-程序员宅基地

文章浏览阅读1.1w次,点赞8次,收藏5次。在二次开发微信,首先要成为微信开发者,在微信开发者平台注册,还要注册一个微信公众号,注册过程很简单,唯一的要求就是要绑定银行卡的微信账号扫一下二维码.然后就能注册成功微信公众号了. 在注册微信公众号之后有两种模式,一个是编辑模式,还有一个就是开发者模式.编辑模式其实也是一个后台操作的过程,在编辑模式下基本上一些基本的功能都能实现,像关键字回复,被关注的时候回复,还有订阅号每天能够推送一条信息给关注_微信 电脑端 二次开发

测试用例集构建_第2部分。为生产前测试构建测试用例-程序员宅基地

文章浏览阅读456次。管理生产的操作要求 内容系列: 此内容是#在系列的一部分#: 管理生产操作要求 https://www.ibm.com/developerworks/library/?series_title_by=manage+operational+requirements+for+production 请继续关注本系列中的其他内容。 该内容是该系列的一部分: 管理生产的操作需..._构建测评用例

Android 获取当前日期 时间很方便 直接调用Calendar类即可-程序员宅基地

文章浏览阅读282次。Android 获取当前日期 时间很方便 直接调用Calendar类即可定义变量private int mHour; private int mMinute; private int mYear; private int mMonth; private int mDay;调用如下 final Calendar c..._直接调用calendar类年份

leetcode 16 最接近的三数之和_最接近的三数之和 时间复杂度-程序员宅基地

文章浏览阅读145次。据说这个题很容易考,嘻嘻嘻,我自己做做。。。每做一个题 它还有变形,我又要开始思考。。。。。所有算法题里面我最讨厌 矩阵 矩阵,数学都没有搞明白矩阵,你还要我写代码。。。说明我今年变聪明了。。。。我做题都是非常简单思路,大道至简。就是如果这三个数之和刚好与target相等就直接输出,如果不是 就看范围。找到距离这个target最近的两个数。min,max最后用绝对值比较一下就可以了..._最接近的三数之和 时间复杂度

理解傅里叶变换算法(一)_求序列的5点dft-程序员宅基地

文章浏览阅读710次。经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、上作者:July、dznlong 二零一一年二月二十日推荐阅读:The Scientist and Engineer's Guide to Digital Signal Processing,By Steven W. Smith, Ph.D。此书地址:http://www.dspguide.com/pdfbook.htm_求序列的5点dft

推荐文章

热门文章

相关标签