给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
这个问题是mod_encoding已经先一步处理了url ,而PHP又解了一次
例如
x.php?s=%252B%2F%2B%2F
那么$_GET['s']得到的是
+/ /
urlencode("+") = %2B
urlencode("%2B") = %252B
所以,这个url被decode了两次
第一次是
urldecode( "%252B%2F%2B%2F") = %2B/+/
urldecode( "%2B/+/") = +/ /
解决办法
修改httpd.conf 将
<IfModule mod_encoding.c>
EncodingEngine on
这一段配置移到需要的vitualHost里去,这个不能和php脚本并存。
相关推荐
-
apache urlrewrite防盗链功能配置
DocumentRoot /home/img ServerName img.host.com ErrorDocument 404 / RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://img.host.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.host.com/.*$ [NC] RewriteRule \.(g
-
用ISAPI_Rewrite让IIS也支持如Apache下.htaccess的URL重写
前些日子用Linux做服务器写了一些东西,发现Apache下的.htaccess真是个好东西!不仅能实现URL真重写,还能实现假重写.真重写可以有效降低代码量与服务器资源消耗量,伪重写可以有效减少服务器的静态文件体积,节约了空间,真是不错!其实htaccess的功能远不只如此. 言归正传,那么IIS下能不能也实现htaccess这样激动人心的功能呢?ASP.NET2.0这个东东不是服务器级的,不能胜任重写这个重任,那么只有交给ISAPI了,在网上搜索,还居然真有公司(组织)开发了这种东东!不可思
-
Apache Rewrite url重定向功能的简单配置
1.Apache Rewrite的主要功能 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 2.Apache Rewrite的配置 Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写.配置步骤如下: (1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewri
-
修改apache配置文件去除thinkphp url中的index.php
例如你的原路径是 http://localhost/test/index.php/index/add那么现在的地址是 http://localhost/test/index/add如何去掉index.php呢? 1.httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置 复制代码 代码如下: #LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉 2.AllowOverride None 讲
-
Apache Rewrite实现URL的301跳转和域名跳转
如果要想用到rewrite模块,必须先安装或加载rewrite模块.方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块. 基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意
-
Apache+Weblogic实现URL转发
一.需求背景 项目部署在Weblogic应用服务器上,上线之后,申请并配置了域名,但是仍需加上端口号才能访问,这样对于用户访问很不方便.为了实现直接用域名访问系统,于是开发人员搭建了Apache HTTP Server,利用URL转发来解决这个问题. 二.安装Apache HTTP Server 1.下载apache(地址:http://httpd.apache.org),并解压到指定目录下: 2.安装,步骤如下: 首先进入解压后的apache文件夹下,然后依次执行如下命令: [root@loc
-
linux下apache开启url重写的方法(详细说明)
Linux开启url重写的方法: 1.打开 apache 里httpd.conf(通常是在/etc/httpd/conf目录里) 2.找到 #LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的# 3.找到 AllowOverride None 改成 AllowOverride All , 有两个全部改掉 注:AllowOverride 的参数设置为ALL,表示整台服务器上都支持URL规则重写.Apache 服务器要读每个网站下目录下的 .
-
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
这个问题是mod_encoding已经先一步处理了url ,而PHP又解了一次 例如 x.php?s=%252B%2F%2B%2F 那么$_GET['s']得到的是 +/ / urlencode("+") = %2B urlencode("%2B") = %252B 所以,这个url被decode了两次 第一次是 urldecode( "%252B%2F%2B%2F") = %2B/+/ urldecode( "%2B/+/&qu
-
php.ini中的php-5.2.0配置指令详解
;; 关于php.ini ;; 这个文件必须命名为'php.ini'并放置在httpd.conf中的PHPIniDir指令指定的目录中. ; 最新版本的php.ini可以在下面两个位置查看: ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co ;;;;;;;;;;;; ;; 语法 ;; ;;
-
Ubuntu linux 安装 PHP5.3.0的命令
刚刚手头有台机器刚装了 ubuntu, 编译了一下 LAMP 系统, PHP 5.3.0 改动比较大. 第一眼看到的 php.ini 文件里已经变动了. 感觉比一以前版本的舒服点了. 有了开发环境和生产环境的配置区分了. 详细的以后慢慢了解了. 貌似增强了很多功能. 从 phpinfo() 里看出来的. 放出一张刚测试出的phpinfo()截图, 后面张贴一下本次编译的命令记录. 看看编译的一堆命令. 有需要的朋友可以拿去参考一下. sudo apt-get install build-esse
-
Win2003下安装PHP5.2.0+MySql5.0.27+PHPMyAdmin2.9.1的配置方法
先下载所需要安装的东东~~ PHP 5.2.0 官方下载地址:http://www.php.net/downloads.php mysql-5.0.27 官方下载地址:http://dev.mysql.com/downloads/mysql/5.0.html phpMyAdmin for Windows V2.9.1 官方下载地址:http://www.phpmyadmin.net/home_page/index.php 你也可以上天空站下载:http://www.skycn.com/s
-
php5.2.0内存管理改进
php5.2.0的内存管理做了较大的改进,某些情况下内存不能释放的问题不存在了.测试php脚本(mem.php),我用echo N>>和sleep来控制脚本在某个阶段暂停以便检测状态. 复制代码 代码如下: <?php echo '1>>'; sleep(5); $o = array(); for ($i=0;$i<=100000;$i++) { $o[]='aaaaaaaaaaaaaaaaaaaaa'; } echo '2>>'; s
-
IIS环境下快速安装、配置和调试PHP5.2.0
记录过程以防遗忘,仅作参考. 一,在哪里获得PHP 打开PHP官方网站的下载页:http://www.php.net/downloads.php 选择"PHP 5.2.0 installer [18,879Kb] - 02 Nov 2006"链接进行下载 二,PHP5安装流程 打开安装文件,"Next"开始 选择接受协议 选择PHP安装路径,建议直接在磁盘根目录下,比如"C:\PHP\" 选择WEB服务器方式为"IIS 4+ISAPI
-
深入分析在Python模块顶层运行的代码引起的一个Bug
然后我们在Interactive Python prompt中测试了一下: >>> import subprocess >>> subprocess.check_call("false") 0 而在其他机器运行相同的代码时, 却正确的抛出了错误: >>> subprocess.check_call("false") Traceback (most recent call last): File "&qu
-
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
03年的时候就看过一本php的书,那时还是php3,回首四年php的在web开的的前景真还是一片光明啊!三年不见的php在去看已到了php5了,现在算起我真正从写第一个php的WEB开始距今还是有三四个月了,用工作之余正在进行www.kuomart.com网站的写做,回想当初一直用的是Windows2003+IIS6+PHP5.0.7+MYSQL4.1在进行开发,直到昨天机子重了木马,Kav也没查出个所以然,自己找也没有发现什么可疑暴露点,所以干脆重装了一下xp,由于TV1000电视卡只能在xp
-
CentOS Linux 下配置Apache2+PHP5+MySQL5+GD库的方法
先安装MYSQL 服务器 解压MySQL,把所有文件复制到/usr/local/mysql [root@Bleach usr]# groupadd mysql [root@Bleach usr]# useradd -g mysql mysql [root@Bleach mysql]# cd /usr/local/mysql [root@Bleach mysql]# scrīpts/mysql_install_db --user=mysql [root@Bleach mysql]# chown
-
linux下为php添加iconv模块的方法
./configure --with-mysql=/backup/mysql --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-curl --with-gd --enable-gd-native-ttf --with-apxs2=/usr/local/apache/bin/apxs --enable-sockets --with-iconv make时提示: 复制代码 代码如下: .............
随机推荐
- 详解Python中 __get__和__getattr__和__getattribute__的区别
- js正则表达式注册页面表单验证
- flex4获取当前窗口的长度与宽度的方法
- 又一个不错的FCKeditor 2.2的安装、修改和调用方法
- MongoDB入门教程之Windows下的MongoDB数据库安装图解
- jQuery获取复选框选中的当前行的某个字段的值
- 简介Nginx服务器的Websockets配置方法
- Kafka使用Java客户端进行访问的示例代码
- Javascript+CSS3实现进度条效果
- PHP Cookie学习笔记
- Android 基于百度语音的语音交互功能(推荐)
- JavaScript Event学习第六章 事件的访问
- 详解Java读取本地文件并显示在JSP文件中
- javascript实现画不相交的圆
- microsoft.exe病毒与清除方法
- Eclipse 开发java 出现Failed to create the Java Virtual Machine错误解决办法
- Jquery上传插件 uploadify v3.1使用说明
- JavaScript实现星星等级评价功能
- js实现图片360度旋转
- CentOS 7.x NAT模式上网配置步骤详解