【问题标题】:RewriteRule can't read png dynamic imageRewriteRule 无法读取 png 动态图像
【发布时间】:2015-07-12 19:38:17
【问题描述】:

我创建了一个 RewriteRule 以允许在 htaccess 中注册一个友好的 url:

RewriteRule ^signup$ signup.php

一切正常,尽管验证码字段生成的 png 图像动态显示链接断开。如果我通过原始 signup.php 请求运行此脚本,它可以正常工作。

验证码来源类似于

?___event=getimage&___input=captcha&___image=6S024g%3D%3D%3A1430648449 

通过 rewriterule 请求脚本我收到此消息:

资源解释为图像,但使用 MIME 类型 text/html 传输:“http://mysite.nil/signup?___event=getimage&___input=captcha&___image=6S024g%3D%3D%3A1430648449

我已经尝试了所有方法,查看了 google 和 apache 日志,但没有成功。

如果能给予我任何帮助,我将不胜感激。

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite mime-types


    【解决方案1】:

    也许您可以为验证码创建一个不同的 RewriteRule?

    .htaccess Resource interpreted as Script but transferred with MIME type text/html

    就像这里所说的,也许你可以尝试用 .png 结束该链接?

    RewriteRule ^signup.png$ signup.php [QSA]
    

    【讨论】:

    • 还是不行,我也试过 RewriteRule ^signup?___event=([A-Za-z0-9]+)&___input=([A-Za-z0-9]+)&___image =([A-Za-z0-9]+)$ signup.php?___event=$1&___input=$2&___image=$3
    【解决方案2】:

    您的验证码源没有方案、域或资源部分:只有查询部分,浏览器将替换页面位置,导致请求 .../signup?___event=getimage... apache 仅匹配资源部分之前,所以你的模式可以保持不变,但你需要告诉 apache 使用 QSA 标志在重写后匹配保留查询字符串。

    RewriteRule ^signup$ signup.php  [QSA]
    

    【讨论】:

      猜你喜欢
      • 2018-02-11
      • 2012-09-25
      • 2010-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 2018-06-30
      • 1970-01-01
      相关资源
      最近更新 更多