php(实现url重写)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在做项目时,有没有发现一个很不好的问题。
如:你得访问地址为:http://localhost/test/index.php?id=1这样,是不是觉得这个链接不好,而且一眼就会被别人看出来你这个网站是用什么技术实现的,而且也不是很安全呢。
是不是觉得/aa/1/1这样的访问地址很清晰并且很眼馋嘛?下来就给大家看看如何实现吧。
配置方面:
1.找到apache的安装目录下的conf下的httpd.conf文件,打开文件修改
LoadModule rewrite_module modules/mod_rewrite.so这行代码,他前面有个#号,把#号删掉
2.还是那个文件,打开,找到
<Directory />
Options FollowSymLinks ExecCGI Indexes
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>
这个节点,把None改为All.
3.重启apache服务
4.最关键的一点,在你得项目目录下创建.htaccess文件,文件没有名称,看上去只是后缀名
具体创建方法不能直接创建,先创建个txt文件(其他的也行),然后另存问,把名字改为.htaccess,并且选所有文件,创建好后,就要制定规则了。
在文件里写代码:
<IfModule mod_rewrite.c>
RewriteEngine on //on为打开,off为关闭
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$ index.php?action=$1&id=$2
</IfModule>
([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个,如此类推!!
5.创建一个php文件吧(这个文件当然要创建到你放.htaccess文件的项目中)
<?php
echo "你的action:".$_GET['action'];
echo "你的id:".$_GET['id'];
?>.
然后你在浏览器地址栏中访问:http://localhost/text/a-1.html,这个地址就相当于你访问http://localhost/text/index.php?action=a&id=1这样。
是不是觉得这样比较美观呢。
访问后的结果是你的action:a 你的id:1
6.ok了,url重写就搞定了。
这只是一个非常简单的例子,大家只要明白了这个例子,相信以大家举一反三的智商,应用到项目中没问题的。