apache rewrite机制

 2023-09-11 阅读 17 评论 0

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

处理伪静态时,用户发送一个伪静态地址。如果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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/46409.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息