apache rewrite机制

处理伪静态时,用户发送一个伪静态地址。如果apache开启了rewrite模块,则通过这个模块正则这个地址,重写这个静态地址产生对应动态地址,发送给php执行。这样用户看到是静态地址,服务器处理是动态地址。

1、启用rewrite模块 修改httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so

2、启用虚拟主机
修改httpd-vhosts.conf 修改hosts

3、添加设置参数

<Directory "D:/web/test"> 这里面的配置如果没有指定访问权限,则以上级目录的权限为准,如果他自己指定了访问权限,则以自己的为准,可以覆盖上级目录配置

Order allow,deny 先看allow 再看deny 留下的可以访问 顺序重要! 这里指定是否让人访问
Allow from all
Deny from xxip

Options none/indexes 是否目录浏览

配置首页面
DirectoryIndex abc.html bb.html

配置错误页
errorDocument 404 /404.html
errorDocument 403 /403.html
errorDocument 500 /500.html

配置rewrite规则
RewriteEngine On #启用rewrite引擎
#RewriteRule 正则表达式 重写到的网址其中可以反应用$1-$n引用前面正则的数据
RewriteRule news-([a-zA-Z])+-id(\d+)\.html$ news.php&type=$1&id=$2

是否启用.htaccess文件
AllowOverride None/All
</Directory>
Directory配置节点,用于指定该目录下的文件或是图片的访问权限,设置虚拟主机的错误页面,欢迎页面

4、最后处理修改httpd-vhosts.conf,还可以直接在网站目录添加.htaccess文件,修改此文件无需重启apache

<ifModule rewrite_module>#查看是否已加载此模块
RewriteEngine On #启用rewrite引擎
#RewriteRule 正则表达式 重写到的网址其中可以反应用$1-$n引用前面正则的数据
RewriteRule news-([a-zA-Z]+)-id(\d+)\.html$ news.php?type=$1&id=$2 #可以多写 正则自上向下
RewriteRule anews-([a-zA-Z]+)-id(\d+)\.html$ news.php?type=$1&id=$2
</ifModule>
errorDocument 404 /404.html

.htaccess 文件对所在目录以及其子目录有效,其子目录如果有.htaccess 文件自动覆盖父目录,继承管理

转载于:https://www.cnblogs.com/caps/archive/2013/03/05/2943645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值