Mod 重写并传递 URL 作为参数

2023-12-23

我在重写 mod 时遇到了一个小问题。我的一个朋友正在编写一个允许您上传图像的脚本。

我们想要做的是允许用户将域名附加到直接图像链接,并且脚本将从提供的 URL 检索图像。

例如,如果图像位于:http://www.test.com/image.jpg http://www.test.com/image.jpg,添加域名.com/http://www.test.com/image.jpg 将允许脚本检索该 url (test.com) 以获取我们想要的图像。

EDIT:HTTP 位于 URL 前面,因为我不希望用户必须手动删除 HTTP。他们在浏览器中看到一个图像,在其前面附加“domain.com”、http 等,然后脚本检索该图像并将其存储在我们的服务器上。

我使用的规则是:

RewriteRule ^([\w|.|/]+(jpg|png|gif))$ /upload.php?url=http://$1 [B,L,NC,R=302]

这可以正确匹配 URL,但 http:// 中的冒号会导致问题。

如果用户输入:domain.com/www.test.com/image.jpg,则有效。

如果用户输入:domain.com/http://www.test.com/image.jpg,它不起作用,我会得到一个 403 禁止页面(Windows 上的 XAMPP)。

如果用户输入:domain.com/http//www.test.com/image.jpg,则有效(http 中没有冒号)。

EDIT:通过工作,我的意思是,如果我在本地测试它,我可以正确地看到我在 $_GET['url'] 参数中传递的 URL,而不是看到错误 403。

您能告诉我这个规则有什么问题以及如何解决吗?或者有其他解决方案来实现我们想要的行为吗?

谢谢。


嗯,我想我已经找到问题了。这不是正则表达式,也不是 mod_rewrite 本身。

因此,这是 Windows 上 Apache 中的一个错误,已被声明为 WONTFIX。

作为参考,请参阅这个 StackOverflow 线程: https://stackoverflow.com/questions/2923247/is-it-possible-to-handle-such-url and 这个错误报告 https://issues.apache.org/bugzilla/show_bug.cgi?id=41441

我正在发布我发现的内容,并将考虑这个问题的答案。谢谢你们!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mod 重写并传递 URL 作为参数 的相关文章

  • php curl 使用 GET 发送变量 奇怪的结果

    我正在尝试调用远程站点上页面中的网址 决定使用curl 在远程站点上 url 变量显示为 REQUEST Array var1 gt val1 amp var2 gt val2 amp var3 gt val3 被调用的url是 http
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • 图像随机损坏(但刷新后加载)并显示“资源解释为图像但使用 MIME 类型 text/html 传输”

    我目前正在开发一个简单的 php 网站 问题是 我的整个网站中的图像 发生在所有 php 文件中 随机损坏并显示错误资源解释为图像 但以 MIME 类型 text html 传输但是 如果我尝试多次刷新页面 可以再次加载图像并且错误消失 我
  • 按文件名对 $_FILES 进行排序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 他俩 如您所知 在新的 HTML5 中 您可以非常轻松地上传多个文件 但我这里的问题是如何按列 名称 对 FILES 数组进行排序 这是
  • Yii2 - 错误请求 (#400) |前端和后端cookie

    仅当我打开时才会出现此问题frontend and backend在相同的browser 设想 与后端交互 gt 切换选项卡 gt 与前端交互 gt 切换选项卡返回 gt 与后端交互 gt 错误请求 400 Cookie 后端 identi
  • 是否可以将路由参数传递给 Laravel 中的控制器构造函数?

    是否可以将路由参数 或路由段 注入到控制器构造函数中 您找到一些代码来澄清我的问题 class TestController protected param public function construct paramFromRoute
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 分页显示所有其他页面上第 1 页的相同帖子

    我最近在创建即将发生的事件列表时得到了很多帮助 请参阅此处显示即将举行的活动 包括今天的活动 https stackoverflow com questions 17343615 showing upcoming events includ
  • 覆盖 FOS 用户包中的“更改密码”模板

    我做了一些研究 遗憾的是找不到任何帮助 因此 我将 FOSUserBundle ChangePasswordAction 渲染到我的模板中 但它显示供应商提供的默认模板 我的渲染控制器的模板 block body h2 Einstellun
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • docker 中的 php Curl 冲突 CURLOPT_FILE 和 CURLOPT_RETURNTRANSFER

    当我使用curl时CURLOPT FILE and CURLOPT RETURNTRANSFER选项 文件为空 没有任何curl错误 fp fopen saveTo w ch curl init fileUrl curl setopt ch
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 如何在 Windows 上安装 Zend 框架

    安装 Zend Framework 就是这么简单 是的 对 好吧 我正在写一本初学者的书 有一件不太详细的事情是最重要的部分 安装该死的东西 浏览了几个小时的快速入门指南后 它只说 下载 Zend 添加包含目录 bla bla 然后就完成了
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • PHP session_regenerate_id 和黑莓浏览器

    问候 我正在开发一个登录系统 并陷入了黑莓浏览器身份验证的困境 他们似乎对 PHP 的 session regenerate id 有问题 有人可以建议替代方案吗 以下是身份验证和登录脚本 UPDATE看来会话一般都不起作用 拿出 sess
  • 如何在 PHP 5.6 中通过 php.ini 设置“verify_peer_name=false”SSL 上下文选项

    案例 我想打开 SSL 连接localhost而 SSL 证书是 FQDN 的问题 问题 没有进行特殊处理就行 下面的程序失败并显示以下消息 PHP Warning stream socket enable crypto Peer cert

随机推荐

  • 如何检查字符串是否经过 Base64 编码

    我想解码 Base64 编码的字符串 然后将其存储在我的数据库中 如果输入不是 Base64 编码 我需要抛出一个错误 如何检查字符串是否经过 Base64 编码 您可以使用以下正则表达式来检查字符串是否构成有效的 Base64 编码 A
  • JavaScript 未知错误

    我的代码有问题 过去两天我一直无法解决 function 7 returns the number of times that pattern occurs in string function score string pattern v
  • 如何在 OpenShift 上检测 WebSocket 连接的远程/客户端 IP 地址

    在 OpenShift 云中 通常的 Apache 代理将发送 HTTP 标头x client ip and x forwarded for 我可以用它来确定客户端 IP 但对于较新的代理 这是 WebSocket 用户的唯一选择 http
  • Flask - Active Directory 身份验证[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我制作了一个小型 Flask 应用程序 我希望用户能够使用他们的 Windows NT ID 进行身份验证 我不是 IT 团队的一员
  • 用于独立应用程序 Winforms 的数据库[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JSlider 标签中的工具提示

    我想创建一个带有标签的 JSlider 其中有一个工具提示 JSlider slider new JSlider JLabel label new JLabel First slider setPaintLabels true Hashta
  • redirect_to 和 render 可以互换吗?

    对于下面的代码 如果将redirect to替换为render会发生什么情况 反之亦然 def create product Product new params product respond to do format if produc
  • 如何使用 Yiinitializr 在 Yii 项目中创建友好链接

    我尝试在我的 Yii 项目中使用 Yiinitializr 站点结构 结构如下 root backend standart yii folders www index php admin mysite com common common f
  • JavaScript 有没有办法检测文件是否可以拖放到所使用的设备上?

    我在网站上创建了一个表单 允许用户上传文件 用户还可以将文件拖放到此表单上 但是 在某些设备上 根本无法拖放files 例如在我的 iPhone 上 因此 我只想仅在有意义的设备上显示文本 将文件拖放到此处 有没有办法原则上检测设备是否支持
  • 将多个值传递给单个 PowerShell 脚本参数

    我有一个脚本 我将 args 中的服务器名称传递给该脚本 这样我就可以使用这个 这些 服务器做一些事情foreach script ps1 host1 host2 host3 foreach i in args Do Stuff i 我想添
  • 自定义视图未触发 OnClickListener

    我创建了一个自定义按钮 它是从 XML 布局中扩展出来的 除了未触发点击侦听器之外 一切正常 我怀疑问题是因为android clickable true 属性 因为当我删除它时 会触发点击侦听器 但我需要设置此属性 因为我的自定义视图使用
  • 如何成功安装pyproj和geopandas?

    我尝试通过运行 pip install geopandas 通过 python 安装 geopandas 但这失败了 python setup py Egg info 失败 错误代码为 1 然后是长目录路径 我在网上读到 geopandas
  • 这种网络抓取行为是否合法? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有与网络抓取相关的问题 不幸的是我在这里或谷歌搜索找不到任何答案 好吧 我可能参与了一个项目 站点 B 但不确定它的合法性 因为对我来说
  • 使用 ANALYZE 从零/从头开始重建 PostgreSQL 统计信息的最快方法是什么?

    我有一个 PostgreSQL v10 数据库 大小约为 100GB 重建统计数据最有效 最快 的方法是什么 例如在主要版本升级之后 ANALYZE如果没有参数 默认情况下会更新整个数据库的统计信息 速度慢得令人痛苦 这看起来像是一个单一的
  • 数据类型 datetime 和 time 在大于或等于运算符中不兼容

    我在数据库表的列中有一个变量类型时间 我如何将java中的这个值与这个字段进行比较我的意思是我可以使用日期 公历吗 我已经尝试过了 但仍然有此消息 请有人给我建议 Date d2 new Date timestamp now Calenda
  • 初学者 Unix shell 脚本问题

    我正在做一项由两部分组成的作业 首先 我们被要求创建一个名为 fileType sh 的 shell 脚本 它能够判断文件是 Windows ASCII 类型还是 其他类型 我已经完成了该部分 并将在下面显示它应该执行的操作的示例 file
  • React Native 中的 URI 与 URL

    在react native中可以这样做 const somePath https
  • 拖放图像视图不起作用

    My RelativeLayout有图像 我只是想让它在整个布局中可拖动 问题是每次我拖放时 它都会回到原始位置 这是我的 拖拽布局 xml
  • 将彩信标记为以编程方式读取

    是否有办法更新彩信 短信数据库以将消息从已读标记为未读 反之亦然 我尝试过使用 URI 但它们对我不起作用 下面的代码可以帮助我更新彩信是否被标记为已查看 要将其用于 SMS 消息 只需将以下 content mms 替换为 content
  • Mod 重写并传递 URL 作为参数

    我在重写 mod 时遇到了一个小问题 我的一个朋友正在编写一个允许您上传图像的脚本 我们想要做的是允许用户将域名附加到直接图像链接 并且脚本将从提供的 URL 检索图像 例如 如果图像位于 http www test com image j