菜单

apache使用.htaccess文件中RewriteRule重定向后,U奇骏L中的加号不可能解析

2019年3月9日 - Php

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

万一没有拉开重定向功用,.htaccess文件也是可以用的,像那样的内容:

一开头自作者以为是没用urlencode处理,后来发现确实处理了,后台经过排查,分明是rewrite的题材,因为在单文件的条件是能够赢得C++那个词的,当然,是经过了urlencode的.

 

图片 1

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

附上PHP.NET上的具体地址 http://www.php.net/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>

 

一旦翻开重定向功效:

明日在使用.htaccess做伪静态的时候,产生一件怪事,UQX56L里设有C++时会有标题,在拍卖C++这些词的时候,无论如何,$_GET都得不到++,只可以获得C空格.

会禁止从浏览器访问当时目录下的保有文件,然而不也许运用重定向功用.

 

在apache的配备文件中:

决方案最近只见到了一种,在PHP的官网上也有记载,在处理c++时,进行四回urlencode处理,即urlencode(urlencode(‘C++’)),那样再rewrite的时候,就足以拿走C++这些词了.

LoadModule rewrite_module modules/mod_rewrite.so

上述配置与重定向功用非亲非故,apache是还是不是打开重定向功效主借使看:

deny from all
<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>
#LoadModule rewrite_module modules/mod_rewrite.so

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图