爱问知识人 爱问教育 医院库

PHP怎样实现网址伪静态

首页

PHP怎样实现网址伪静态


        

提交回答
好评回答
  • 2023-04-11 22:30:00

    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

    相关学习推荐:编程视频

    传***

    2023-04-11 22:30:00

类似问题

换一换
  • 电脑/网络 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):