我在重写 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。
您能告诉我这个规则有什么问题以及如何解决吗?或者有其他解决方案来实现我们想要的行为吗?
谢谢。