账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    %85%AE使Apache的Rewriter失效???
    55
    0

    我在.htaccess文件里面添加了如下内容:

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>
    

    然后当我输入http://127.0.0.5/Style/main/本兮http://127.0.0.5/Style/main/%... )进行访问时,出现了apache自带的404页面,但把后面的“本兮”换成其他汉字时访问是正常的!!!
    经过我的排查,发现只要访问所用的汉字的url编码中含有“%85%AE”就会导致404!!!
    我还发现了另外一个神奇的BUG:当访问http://127.0.0.5/兮http://127.0.0.5/%E5%85%AE )时,服务器报404 Object not found,,,
    但是当访问
    http://127.0.0.5/%85%AE
    http://127.0.0.5/%85
    http://127.0.0.5/%AE
    服务器会报403 Access forbidden
    这是怎么回事???

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ★佪眸┅笑★╮ 普通会员 1楼

      Apache的Rewriter是Apache项目中用来对HTTP请求进行解析并生成HTTP响应的部分。在Apache中,Rewriter是通过一个名为RewriteEngine的Java类来实现的。

      如果你想让Apache的Rewriter失效,你需要禁用这个类。在Apache配置文件中,你可以在httpd.conf文件中添加以下行:

      xml <IfModule !mod_rewrite.c> <Directory /path/to/your/httpd/> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </IfModule>

      这段代码的意思是,如果你的Apache服务器没有启用RewriteEngine,那么这个配置文件将被应用。/path/to/your/httpd/是你要启用RewriteEngine的目录的路径。

      请注意,启用RewriteEngine并不意味着你的Apache服务器将启用任何特定的Rewrite规则。它只是告诉Apache在解析请求时,如果发现RewriteEngine已被启用,那么应该使用RewriteEngine生成的规则。

    更多回答
    扫一扫访问手机版