apache关于rewrite方面的实验

46 篇文章 0 订阅
32 篇文章 0 订阅

实验环境为apache2.2.22

win下

有一个文件 正常访问为player.php?id=1

现在想这样实现:

player/1.html

第一种方法

直接修改httpd.conf文件

LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine on
RewriteRule ^/player/(.*).html$ /player.php?id=$1

这样子就可以直接实现

但是目前看来

RewriteRule player/(.*).html$ /player.php?id=$1 这样也可以

第二种方法,先要让apache 支持.htaccess文件

修改httpd.conf

用文本编辑器打开后查找
<Directory /> 
Options FollowSymLinks
AllowOverride None
</Directory> 
改为
<Directory /> 
Options FollowSymLinks
AllowOverride All
</Directory>
就可以了

然后,建立.htaccess文件

一种是创建一个htaccess文件,然后进入cmd 执行命令 rename htaccess .htaccess

或者直接用编辑器 如notepad++ notepad在保存时直接保存为 .htaccess 即可 扩展名一定要为*.*才可以

RewriteEngine on
RewriteRule !\.{js|ico|gif|jpg|png|css}$ index.php
RewriteRule /player-(.*).html$ player.php?id=$1

第二行意思是不对静态文件进行专项判断

下面提供一些参考:

1.Apache Rewrite规则的书写
RewriteEngine on
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]

RewriteEngine on
#当我们访问的地址不是以www.163.com开头的,那么执行下一条规则
RewriteCond %{HTTP_HOST} !^www.163.com [NC]
RewriteRule ^/(.*) http://www.163.com/ [L]

2.Apache Rewrite规则修正符
1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联

如果规则匹配则正常处理,以下修正符无效

8) T=MIME-type(force MIME type) 强制MIME类型
9) NS 只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lwprain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值