apache使用.htaccess文件中RewriteRule重定向后,ULX570L中的加号不能解析

发布时间:2019-03-01  栏目:Python  评论:0 Comments

前几天在使用.htaccess做伪静态的时候,发生一件怪事,U本田UR-VL里存在C++时会有标题,在拍卖C++那一个词的时候,无论怎样,$_GET都得不到++,只可以取得C空格.

在apache的布置文件中:

一开始自个儿觉得是没用urlencode处理,后来发现真正处理了,后台经过排查,鲜明是rewrite的难题,因为在单文件的环境是足以得到C++这么些词的,当然,是透过了urlencode的.

<VirtualHost *:80>
    ServerName tp5.com
    DocumentRoot d:/wamp/www/tp5.com/public
    <Directory  "d:/wamp/www/tp5.com/public/">
        Options Indexes FollowSymLinks MultiViews(是否允许浏览目录下的列表)
        AllowOverride All/None("允许/禁止"使用.htaccess文件)
        Require local
    </Directory>
</VirtualHost>

缘由:rewrite得不到c++那几个词,是因为APACHE在得到参数后,自行做了urldecode处理,导致力不从心获得C++中的加号部分

如上配置与重定向功用毫无干系,apache是不是打开重定向作用重假诺看:

 

#LoadModule rewrite_module modules/mod_rewrite.so

决方案目前只看到了一种,在PHP的官网上也有记载,在拍卖c++时,实行一次urlencode处理,即urlencode(urlencode(‘C++’)),那样再rewrite的时候,就能够赢得C++那几个词了.

要是没有开启重定向功效,.htaccess文件也是足以用的,像这么的剧情:

依附PHP.NET上的具体地址 http://www.php.net/urlencode

deny from all

图片 1

会禁止从浏览器访问当时目录下的具有文件,可是不能使用重定向效能.

 

若果打开重定向作用:

LoadModule rewrite_module modules/mod_rewrite.so

.htaccess文书档案的内容能够参见tp5的重定向写法,如下:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ aaa.php/$1 [QSA,PT,L](把括号里的内容替换成$1的内容,这句会默认把所有的网址前加上aaa.php)
</IfModule>

 

留下评论

网站地图xml地图