Apache 伪静态处理跳转中传递参数

下面对比一下,看第一个配置文件

# 将 RewriteEngine 模式打开
RewriteEngine On
RewriteBase /
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^(/)?$ /wap.php?%{QUERY_STRING} [L] # 获取后面跟随的参数
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^/(\w+).php$ /$1.php?%{QUERY_STRING} [L] # 获取后面跟随的参数
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^(\w+).html$ /wap.php?controller=$1&%{QUERY_STRING} [L] # 获取后面跟随的参数
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^(\w+)\/(\w+).html$ /wap.php?controller=$1&action=$2&%{QUERY_STRING} [L] # 获取后面跟随的参数
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^(\w+)\/(\w+)\/([\w\-\=\&\/a-zA-Z0-9_%]+).html$ /wap.php?controller=$1&action=$2&arguments=$3&%{QUERY_STRING} [L]
 
RewriteRule ^app\/$ /app.php [L]
RewriteRule ^(/)?$ /index.php [L]
RewriteRule ^/(\w+).php$ /$1.php [QSA,L]
RewriteRule ^(\w+).html$ /index.php?controller=$1 [QSA,L]
RewriteRule ^(\w+)\/(\w+).html$ /index.php?controller=$1&action=$2 [QSA,L]
RewriteRule ^(\w+)\/(\w+)\/([\w\-\=\&\/a-zA-Z0-9_%]+).html$ /index.php?controller=$1&action=$2&arguments=$3 [QSA,L]

这个是一个完整,可以在进行伪静态处理后,获取到传入的参数

如:http://m.zcyy.dev/auction/index/type/auction.html?p=2

是可以获取到参数p的,p的值为2

再来看下第二个

# 将 RewriteEngine 模式打开
RewriteEngine On
RewriteBase /
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^(/)?$ /wap.php [L]
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^/(\w+).php$ /$1.php [L]
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^(\w+).html$ /wap.php?controller=$1 [L]
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^(\w+)\/(\w+).html$ /wap.php?controller=$1&action=$2 [L]
 
RewriteCond %{HTTP_HOST} ^m.zcyy.dev [NC]
RewriteRule ^(\w+)\/(\w+)\/([\w\-\=\&\/a-zA-Z0-9_%]+).html$ /wap.php?controller=$1&action=$2&arguments=$3 [L]
 
RewriteRule ^app\/$ /app.php [L]
RewriteRule ^(/)?$ /index.php [L]
RewriteRule ^/(\w+).php$ /$1.php [QSA,L]
RewriteRule ^(\w+).html$ /index.php?controller=$1 [QSA,L]
RewriteRule ^(\w+)\/(\w+).html$ /index.php?controller=$1&action=$2 [QSA,L]
RewriteRule ^(\w+)\/(\w+)\/([\w\-\=\&\/a-zA-Z0-9_%]+).html$ /index.php?controller=$1&action=$2&arguments=$3 [QSA,L]

这个是有问题的,是获取不到参数的

如:http://m.zcyy.dev/auction/index/type/auction.html?p=2

是获取不到参数p的

但是,如果是这样的地址的话是可以的

如:http://www.zcyy.dev/auction/index/type/auction.html?p=2

是可以获取到参数p的,p的值为2

其主要原因是因为%{QUERY_STRING}这个地方起了作用,超赞的一个用法。

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2015-01-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏wOw的Android小站

[Android][Framework] Android O SystemServer启动流程

SystemServer通过ZygoteInit.java反射启动,首先会进入main方法,main会构造一个新的SystemServer,然后运行run()方...

3972
来自专栏云计算与大数据

How to Monitor Zookeeper

As per previous articles, our general rule of thumb is “collect all possible/rea...

2884
来自专栏技术博文

php QR Code二维码生成类

<?php /* * PHP QR Code encoder * * This file contains MERGED version of PHP ...

3995
来自专栏乐沙弥的世界

Failed to upgrade Oracle Cluster Registry configuration(root.sh)

    最近在给客户基于Suse 11 sp3安装Oracle 10g RAC,在安装完clusterware执行/u01/app/crs/root.sh时收...

941
来自专栏菩提树下的杨过

spring-boot 速成(8) 集成druid+mybatis

spring-boot与druid、mybatis集成(包括pageHelper分页插件), 要添加以下几个依赖项: compile('mysql:my...

9359
来自专栏运维

CentOS6.3 x86_64位安装xfce4桌面vncserver服务

CentOS6.3 x86_64位安装xfce4桌面vncserver服务 注意这里用的是最小化安装纯净系统212个包CentOS-6.3-x86_64-...

1631
来自专栏10km的专栏

cmake:vs2015/MinGW静态编译leveldb

leveldb是google的开源项目(https://github.com/google/leveldb), 在linux下编译很方便,然而官方版本却没有提供...

5826
来自专栏技术博文

Linux命令英文全称

su:Swith user  切换用户,切换到root用户 cat: Concatenate  串联 uname: Unix name  系统名称 df: Di...

3975
来自专栏微信音视频小程序

教你1天搭建自己的“微视”

A simple iOS Application project is shown below to illustrate how to configure S...

1K5
来自专栏数据和云

偷梁换柱 | 无备份情况下的数据恢复实践

在实际环境中,许多数据库环境并没有做好完整的数据备份恢复计划及容灾方案,无法保证数据安全,并且出现一些灾难性的错误。那么我们就面临这样的问题:在什么样的最极端情...

3325

扫码关注云+社区

领取腾讯云代金券