24小时在线 - 古典小说 - 文学小说 - 关于我们
您的当前位置:首页 > 服务器 > Apache >

apache开启伪静态的方法 php篇

来源:比特技术网 编辑:比特技术 时间:2018-07-25点击:
导读:打开apache的配置文件httpd.conf 找到 #LoadModule rewrite_module modules/mod_rewrite.so 1 把前面#去掉。没有则添加,但必选独占一行,使apache支持 mod_rewrite 模块 找到 Directory D:/ApacheServer/web # # Possible values for the Options directive

打开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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

把  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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注释:  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'];
}
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在浏览器中输入  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

来源:比特技术在线(www.byte.online),欢迎分享本文,转载请保留出处!
http://www.byte.online/a/fuwuqi/Apache/2018/871402.html
责任编辑:比特技术

    打赏

    取消

    感谢您的支持,我会继续努力的!

    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    网友评论:

    Copyright © www.byte.online 比特技术在线 版权所有 粤ICP备15038486号-3
    本站所有资料来源于网络,由个人收集整理,仅限于个人学习和研究,如果侵犯您的权益请联系我们删除!
    Top