黑白鱼-黑白鱼001-软件工具-股票投资-股海泛舟
  • 首页
  • PHP
  • apache如何开启伪静态的方法(完整有例子)

apache如何开启伪静态的方法(完整有例子)

发布:shubiao052018-9-6 15:12分类: PHP

打开apache的配置文件httpd.conf 
找到

 #LoadModule rewrite_module modules/mod_rewrite.so
  • 1

把前面#去掉。没有则添加,但必选独占一行,使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[′p′]_GET[‘action’] GET[‘id′]来接收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/14682 人参与

欢迎订阅黑白鱼

欢迎使用手机扫描二维码,关注公众号“黑白鱼001”