APACHE REWRITE ? 匹配问号的写法

RewriteRule 不会去匹配 ? 后面的字符串,需要用RewriteCond来匹配

把 /abc?id=123  =>  /def.php?id=123 的写法:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=(.+)$
RewriteRule ^/abc$ /def.php?sid=%1 [L]

#启用重写后,避免静态资源访问出错
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/css
    RewriteCond %{REQUEST_URI} !^/js
    RewriteCond %{REQUEST_URI} !^/images
    RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg|\.xml)
    #解决重写后接不到问号后面的参数
    RewriteCond %{QUERY_STRING} ^(.*)$
    #RewriteRule ^(\w+)\-(\w+)\.html index.php?c=$1&a=$2%1 [L,QSA]
    #把URL中的index.php省略掉
    RewriteRule  ^/(.*)  /index.php?$1 [L,QSA]
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^userd-([0-9]+)-boardlist.html$ pyquan.php?action=boardlist&uid=$1&%1 [L]

http://localhost:8084/userd-1-boardlist.html?page=2

array (size=3)
  ‘action‘ => ‘boardlist‘ (length=9)
  ‘uid‘ => ‘1‘ (length=1)
  ‘page‘ => ‘2‘ (length=1)
时间: 2024-10-24 13:07:55

APACHE REWRITE ? 匹配问号的写法的相关文章

Apache Rewrite匹配问号的问题

在写RewriteRule准备匹配url中的问号及后面的参数时,怎么弄都无法成功.正则的写法经过测试是正确的,问号也已经转义\?,可还是不行. 百度查询了下,RewriteRule 不会去匹配问号?后面的字符串,如下: QSA|qsappend When the replacement URI contains a query string, the default behavior of RewriteRule is to discard the existing query string,

nginx 匹配问号 rewrite

今天同事问我 nignx跳转的问题匹配问号需要 需求是http://aaa.bbb.com/forum.php?id=123 跳转到 http://aaa.bbb.com/forum.php 在这里需要注意的是跳转前有问号,跳转后没有问号 这种情况我是用if解决的. nginx有一个变量是$query_string 它的用途就是定义问号以后的变量 在这个例子中它其实就是 id=123  这几个字符 开始配置的时候是 if ($query_string ~* "id=123$") {  

apache rewrite规则

在开篇之前:我想说这篇文章其实是我刚刚接触Rewrite的时候学习的文档,应属转载,但是在这里我不想写明原地址,原因是文章中大多数给出的配置命令经实验都是错误的.需要原文的可以在谷歌上搜索一下"Apache Rewrite 规则详解"好在我对正则表达式有所了解,把原文的代码都通过自己的理解改写了一下,并都能够达到题设的要求,并联想需求添加了例子.本文是经过我实验后修改有效的,如果还是出现500错误请去掉 # 及后面的注释(也许有些环境不支持中文注解),如果还是错误请在下面给我留言. 1

Apache Rewrite 规则详解

转自:http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html 1.Rewrite规则简介: Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式.如果要想用到rewrite模块,必须先安装或加载rewrite模块.方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装

Apache Rewrite url重定向功能的简单配置

Rewrite url重定向就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 1.Apache Rewrite的主要功能 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 2.Apache Rewrite的配置 Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.con

Apache Rewrite实现URL的跳转和域名跳转

Apache Rewrite实现URL的跳转和域名跳转 Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基 于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式.如果要想用到rewrite模块,必须先安装或加载rewrite模块.方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块. 基于服务器级的(httpd.co

Apache Rewrite规则详解[转]

1.Rewrite规则简介:Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式.如果要想用到rewrite模块,必须先安装或加载rewrite模块.方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块. 基于服务器级的(httpd.conf)有两种方法 一种是在http

apache rewrite 正则表达式基础

用了好几次rewrite,用的次数不是很多,每次都忘,都得重新上网上找一堆现看,总结一下,以免以后忘了 =====================分隔符===================== 注意以下几点: 1.加载rewrite模块,LoadModule rewrite_module modules/mod_rewrite.so 2.如果是用vhost里配置,则在vhost里打开RewriteEngine on(htaccess文件配置的方式没有用过) 用过的配置: 场景一:当域名是aaa

.htaccess中的apache rewrite规则详解

.htaccess中的apache rewrite写法: RewriteEngine OnRewriteCond %{HTTP_HOST} ^(www.)?xxx.com$RewriteCond %{REQUEST_URI} !^/blog/RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ /blog/$1 没有输入文件名的默认到到首页 RewriteCond %{HT