问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php怎么配置伪静态

发布网友 发布时间:2022-04-06 05:16

我来回答

5个回答

懂视网 时间:2022-04-06 09:37

PHP实现网址伪静态的方法:1、使用函数【$_SERVER['PATH_INFO']】操作实现;2、配置【.htaccess】来,网站建设时使用【mod_rewrite】模块来实现伪静态。

PHP实现网址伪静态的方法:

1.根据$_SERVER['PATH_INFO']来操作实现。

举个列子比如你的网站的地址是 http://127.0.0.1/show_new.php/look-id-1.shtml

echo $_SERVER['PATH_INFO']

出来的结果就会是

 /look-id-1.shtml

看到这个我想大家可能已经明白了。完整的demo

相关学习推荐:php编程(视频)

index.php

代码如下:

index.php
 
$conn=mysql_connect("localhost","root","root")or dir("连接失败");
mysql_select_db("tb_demo",$conn);
$sql="select * from news";
$res=mysql_query($sql);
header("content-type:text/html;charset=utf-8");
echo "<h1>新闻列表</h1>";
echo "<a href='add_news.html'>添加新闻</a><hr/>";
echo "<table>";
echo "<tr><td>id</td><td>标题</td><td>查看详情</td><td>修改新闻</td></tr>";
while($row=mysql_fetch_assoc($res)){
 echo "<tr><td>{$row['id']}</td><td>{$row['title']}</td><td><a href='show_new.php/look-id-{$row['id']}.shtml'>查看详情</a></td><td><a href='#'>修改页面</a></td></tr>";
}
//上面的红色的地址本来该是show_news.php?act=look&id={$row['id']}
echo "</table>";
//关闭资源
mysql_free_result($res);
mysql_close($conn);

show_new.php页面

代码如下:

show_new.php
 
header("Content-type:text/html;charset=utf-8");
$conn=mysql_connect("localhost","root","root");
mysql_select_db("tb_demo",$conn);
mysql_query("set names utf8");
 $pa = $_SERVER['PATH_INFO'];
//$pa 打印出来的值是 /look-id-1.html
//通过正则表达式匹配获取的url地址
if(preg_match('/^/(look)-(id)-([d]).shtml$/',$pa,$arr)){
 $act = $arr[1]; //这个是请求的look方法
 $id = $arr[3]; //这个是获取的id 值
 $sql="select * from news where id= $id";
 $res=mysql_query($sql);
 $res = mysql_fetch_assoc($res);
 echo $res['title']."<hr>".$res['content'];
}else{
 echo "url地址不合法";
}
mysql_close($conn);

看到上面的这个我想大家肯定懂了吧 其实这种方式用的不多的下面的给大家说第二种方法了啊

2.根据配置.htaccess来实现。

Apache的mod_rewrite是比较强大的,在进行网站建设时,可以通过这个模块来实现伪静态。

主要步骤如下:

1.检测Apache是否开启mod_rewrite功能

可以通过php提供的phpinfo()函数查看环境配置,找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有开启“mod_rewrite”,则打开目录 apache目录下的“/apache/conf/” ,找到 httpd.conf 文件,再找到“LoadModule rewrite_module”,将前面的”#”号删除即表示取用该功能。 如果没有查找到“LoadModule” 区域,可以在最后一行加入

“LoadModule rewrite_module ,modules/mod_rewrite.so”

(独占一行),之后重启apache服务器。再通过phpinfo()函数查看环境配置就有“mod_rewrite”为项了.。

2.让apache服务器支持.htaccess

如何让自己的本地APACHE服务器支持:“htaccess”呢? 只需修改apache的httpd.conf设置就可以让 APACHE支持“.htaccess”了。打开 APACHE目录的CONF目录下的httpd.conf文件,找到: Options FollowSymLinks AllowOverride None 改为 Options FollowSymLinks AllowOverride All 就行了。

3.建立.htaccess文件

建立.htaccess文件时要注意,不能直接建,方法是通过记事本中的另存为菜单,在文件名窗口输入:“.htaccess”,然后点击保存。

4.rewrite规则学习

在新建.htaccess文件之后,就在里面写入以下内容: RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭 RewriteRule ([0-9]{1,})$index.php?id=$1 在这里,RewriteRule是重写规则,是用正则表达式的句子,([0-9]{1,})表示由数字组成的,$表示结束标志,表示以数字结束!如果要实现伪静态页面,

规则如下:

 RewriteEngine on RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2

在为个正则表达式中,([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第1括号匹配的值,$2代表第二个括号的值,如此类推! 测试PHP脚本如下: index.php文件中的代码如下:

echo ‘你的Action值为:’ . $_GET['action']; echo ‘ ’; 
echo ‘ID值为:’ . $_GET['id']; ?>

在浏览器地址栏输入:

 localhost/page-18.html

输出的是:

 你的Action值为:page ID值为:18

相关学习推荐:编程视频

热心网友 时间:2022-04-06 06:45

第一步:找到apache的配置文件httpd.conf  按照下面配置

第二步: 找到apache的配置文件httpd.conf  按照下面配置

第三步:

在网站根目录直接建一个.htaccess文件 这里面是写伪静态规则的。就想php的正则表达式

但语法和php正则略有不同,你可以直接到网上搜索伪静态正则。这个文件可以用记事本创建直接保存文件名为.htaccess 记住文件名字第一个字符是英文的点。。祝你好运,不会call我

追问不好意思 不小心点了 已解决问题了 能不能加你企鹅问你啊

热心网友 时间:2022-04-06 08:03

先确定服务器是否支持Rewrite
比如是apache的话,
找到#LoadMole rewrite_mole moles/mod_rewrite.so
把前面的#去掉
保存并重启
然后在站点更目录下建立一个.htaccess文件,并写上伪静态规则即可!
如果是iis的话,有点麻烦,需要给iis安装一个伪静态组件,这个组件要钱的!
其他服务器的话,没用过,也没研究过!

热心网友 时间:2022-04-06 09:38

看服务器是什么, apache? nginx?两种配置不一样.如果是apache, 请保证rewrite模块已加载.如果配置无效, 看一下apache的错误日志中的提示.

热心网友 时间:2022-04-06 11:46

你可以先说明一下环境。。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
创卫创卫意义 做了美甲想换颜色 ...想换个颜色,但又不想去除刚贴的甲片,有什么办法吗 洪伯潜的简介 the saltwater room翻译成中文是 什么意识? the saltwater room这句英语是什么意思? the saltwater room 的中文翻译因该是什么样的 Fresh water 可不是"新鲜的水"!不要看到英文就直译! 2022国庆在校大学生出省需要和学校报备吗-大学生国庆出省不上报会... 做了面膜或者摸了水乳后脸总是痒痒的怎么回事 PHP和asp如何实现伪静态 php 怎么把文件里的原图片和缩略图删掉 如何预览以及删除php中fckeditor 服务器上的图片?请高手赶紧指点啊!谢谢 php怎么在删除mysql 数据库中数据的同时 把服务器上对应的图片也删了额。。。。。。。。。求教啊 !!! php中多条删除问题?? PHP里删除语句的问题$sql = &quot;DELETE FROM user WHERE Id = &#39; &#39; &quot; php mysql 删除语句怎么写? php的delete删除语句怎么写 php删除一篇文章的同时,也要删除它相关的评论内容,sql语句怎么写. php查询语句和删除语句 win10打不开EXCEL怎么办 Win10正式版打不开EXCEL,xlsx文档怎么办 PHP防止多次提交表单。 用html或php怎样简单的实现单击下载图片 php如何将变量中图片的地址放到HTML语言中? 如何在html中显示用php上传的图片 php怎么把网页生成为图片,或者调用什么api等,我现在想把html网页生成图分享到微博,或者可以有什么 PHP 如何禁止TEXT执行代码 PHP 代码解密eval(base64_decode---请附解密方法, 粘贴文本到input自动清除前后的空格!php的 怎么设置网站伪静态? PHP的URL如何伪静态?大神救命! 网页伪静态页面是如何实现的? phpstudy用这个怎么让php语言的网站实现伪静态? PHP代码实现伪静态 求助PHP伪静态,如何将动态PHP页面改为伪静态页面 网站优化之PHPCMS如何开启伪静态 如何将php的url生成伪静态的url 笔记本电脑256G固态硬盘够用么?装个侠盗飞车5,CF ,DNF ,LOL够么?? 学习编程的话,256g固态硬盘够不够? 电脑只有一个256G固态硬盘,够用吗 256g电脑够用吗 256G固态硬盘真的都够用吗 固态硬盘250G和256G真的够用了吗?打算换硬盘!别人说固态硬盘数据找不回? PHP写的网站怎么用https访问,具体要怎样 PHP判断是否是序列化字符串数据的函数 Php点赞效果的制作代码+解析 PHP点赞和踩功能的怎么实现,代码怎么写 js点赞效果实现 php ajax jquery这三个要怎么结合使用。