整理测试成功的 我用的是phpstudy
一:\phpStudy\Apache\conf\httpd.conf
1:查找 :
#LoadModule rewrite_module modules/mod_rewrite.so
去掉前面的#
2:查找:
AllowOverride None
把AllowOverride None 换成 AllowOverride All 使apache支持 .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>
注释(转自https://blog.youkuaiyun.com/u011781521/article/details/68214363):
RewriteEngine 为重写引擎开关,on为开启,off为关闭。
RewriteRule 是路由转向规则,$ 之前路径为浏览器中要输入路径,这里可以用正则表达式表达。$+空格 后路径为后台实际转向路径,转向后台实际路径时可以传参数,例子里的后台页面可以用$_GET['p'] $_GET['action'] $_GET['id'] 来接收
$1 代表浏览器路径中输入的第一个正则表达式的值,以此类推
$2代表第二个正则表达式的值
RewriteRule 路由转向规则里正则表达式用括号 () 括起来
说的不对的地方希望大家指出来嘻嘻~