mod_rewrite最简单的知识
转载开启Apache 的mod_rewrite功能:
在Apahce的配置文件httpd.conf中把#LoadModule rewrite_module modules/mod_rewrite.so
前的#去掉,改为LoadModule rewrite_module modules/mod_rewrite.so
在httpd.conf中找到下面这段
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
将AllowOverride None 改成 AllowOverride ALL
这样在.htaccess文件中配置的命令才会生效
简单使用mod_rewrite。
该功能的使用:一种是将转向规则写在httpd.conf中,这样效率比较高,但缺乏灵活性;
另一种是写在.htaccess文件中,将该文件放到需要运用该重写规则的网站目录的根目录。
比如网站结构
+DocumentRoot
|---News
|---BBS
|---Blog
以上结构中我只希望在新闻模块运用mod_rewrite则只需将.htaccess
文件放到 /News目录下,则该目录下的所有请求都会去和.htaacess中的地址重写规则匹配。.htaccess虽然灵活但确带来性能上的缺失。
重写规则样例(其中的正则表达式就不在此叙述了):
RewriteEngine On
RewriteRule ^index(.*)$ /test.php [L]
RewriteRule ^index_([0-9]+).html$ getnews.php?id=$1 [L]
第一句RewriteEngine On一定不能少,否则该文件将不起任何作用。
第二句RewriteRule表示规则开始,具体为^index(.*)$ 将对 index,cgi (cgi表示html,php,。。等)的请求让test.php来处理,但地址栏上仍然写的是 index.cgi。[L]表示该规则结束
第二句 ^index_([0-9]+).html 表示 index_(0~9的任何数字任何组合).html, 就等于可以是 index_1.html
index_94.html , index_4565.html ...任何的形式
以 index_94.html 为例:
对index_94.html 的请求 将会交给 getnews.php?id=94来请求,可见 $1就代表参数([0-9]+)。
这个例子演变后可以完成大部分的请求:
如
RewriteRule ^news/([0-9]+)/(delete).html$ news/news_instance.php?news_id=$1&act=$2 [L]
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
CSV文件太大?教你用最简单的工具分割!
首先,我要介绍的是“一键表格拆分助手”。这是一个由“勤学道人”开发的高性能一键拆分工具,特别适合小白用户。
csv分割 csv分割工具 csv分割拆分工具软件 csv大文件大表格拆分分割工具 -
mod_rewrite模块的归纳总结
mod_rewrite模块的归纳总结
模块 mod_rewrite -
Apache添加mod_rewrite模块
Apache添加mod_rewrite模块
apache php 重启 绝对路径 nginx -
安装wordpress之激活mod_rewrite
-mod-rewrite-in-apache-on-ubuntu
wordpress apache ubuntu