apache伪静态

打开apache的配置文件httpd.conf

找到 #LoadModule rewrite_module modules/mod_rewrite.so

把前面#去掉。没有则添加,但必选独占一行,使apache支持 mod_rewrite 模块

找到

 	<Directory "D:/ApacheServer/web"> 
 	    # 
 	    # Possible values for the Options directive are "None", "All", 
 	    # or any combination of: 
 	    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 
 	    # 
 	    # Note that "MultiViews" must be named *explicitly* --- "Options All" 
 	    # doesn't give it to you. 
 	    # 
 	    # The Options directive is both complicated and important.  Please see 
 	    # http://httpd.apache.org/docs/2.2/mod/core.html#options 
 	    # for more information. 
 	    # 
 	    Options Indexes FollowSymLinks 
 	    # 
 	    # AllowOverride controls what directives may be placed in .htaccess files. 
 	    # It can be "All", "None", or any combination of the keywords: 
 	    #   Options FileInfo AuthConfig Limit 
 	    # 
 	    AllowOverride None 
 	    # 
 	    # Controls who can get stuff from this server. 
 	    # 
 	    Order allow,deny 
 	    Allow from all 
 	</Directory> 

把AllowOverride None 换成 AllowOverride All 使apache支持 .htaccess 文件

重启apache服务器

在要启用伪静态的 PHP 项目根目录下建立 .htaccess 文件

在 .htaccess 文件中输入内容

 	<IfModule mod_rewrite.c> 
 	    RewriteEngine on 
 	    RewriteRule index.html$ index.php 
 	    RewriteRule index-([1-9]+[0-9]*).html$ index.php?p=$1 
 	    RewriteRule ([a-z]{1,})-([0-9]{1,}).html$ index.php?action=$1&id=$2 
 	</IfModule> 

注释:

RewriteEngine   为重写引擎开关,on为开启,off为关闭。

RewriteRule     是路由转向规则,$ 之前路径为浏览器中要输入路径,这里可以用正则表达式表达。$+空格 后路径为后台实际转向路径,

转向后台实际路径时可以传参数,例子里的后台页面可以用$_GET['p']   $_GET['action']  $_GET['id'] 来接收

$1 代表浏览器路径中输入的第一个正则表达式的值,以此类推,$2代表第二个正则表达式的值

RewriteRule 路由转向规则里正则表达式用括号 () 括起来

例子所在项目为test

在项目下 index.php 页面内写入内容

 	<?php 
 	if ($_GET ['p']) { 
 	    echo "p : " . $_GET ['p']; 
 	} 
 	if ($_GET ['action']) { 
 	    echo "action : " . $_GET ['action']; 
 	} 
 	if ($_GET ['id']) { 
 	    echo "id : " . $_GET ['id']; 
 	} 
 	?> 

在浏览器中输入

http://localhost/test/index.html

http://localhost/test/index-99.html

http://localhost/test/page-18.html

都会转向 http://localhost/test/index.php 页面

并且依次

http://localhost/test/index.html     页面什么都不显示

http://localhost/test/index-99.html  页面显示 p : 99

http://localhost/test/page-18.html   页面显示 action : pageid : 18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • apache伪静态

    #LoadModule rewrite_module modules/mod_rewrite.so

    似水的流年
  • apache伪静态

    打开apache的配置文件httpd.conf

    似水的流年
  • IDEA入门级使用教程

    IDEA的基础配置 下载好IDEA,免不了一些配置和个人设置。一些设置问题和操作我放在最后讲,因为不影响我们的 使用。先说一下jdk和tomcat的配置...

    似水的流年
  • apache伪静态

    #LoadModule rewrite_module modules/mod_rewrite.so

    似水的流年
  • apache伪静态

    打开apache的配置文件httpd.conf

    似水的流年
  • android https安全连接

    如果不需要验证服务器端证书,直接照这里做 public class Demo extends Activity {   /** Called when ...

    xiangzhihong
  • 在windows上搭建镜像yum站的方法(附bat脚本)

    方法一:支持rsync的网站  对于常用的centos、Ubuntu、等使用官方yum源在 http://mirrors.ustc.edu.cn 都存在镜像。 ...

    惨绿少年
  • CMU2018春季课程:神经网络自然语言处理课程(附PPT和代码)

    【导读】我们之前介绍了一系列卡耐基梅隆大学的课程,今天,我们又带来了CMU 2018春季最新的课程“Neural Networks for NLP”介绍,该课程...

    WZEARW
  • 一些开源软件或者开发框架网站

    Git SCM Implemented as a set of JavaScript modules for use in any JS

    ccf19881030
  • web服务器与HTTP协议

    Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。 l Internet上供外界访问的Web资源分为:...

    奋斗蒙

扫码关注云+社区

领取腾讯云代金券