我实际上是在创建代理 - 您将URL放在路径的末尾,我的服务器下载并显示它。
如何重写http://www.example.com/search/dl/http://www.example.com/image.png
至http://www.example.com/search/download.php?url=http://www.example.com/image.png
我一直无法找到任何解决方案 - 我认为这可能会给我带来麻烦。
答案 0 :(得分:0)
在文档根目录的htaccess文件中,您需要:
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /search/dl/(http://[^\ \?]+)
RewriteRule ^search/dl/ /search/download.php?url=%1 [L]
您需要匹配%{THE_REQUEST}
变量,因为当请求URI被规范化时,http:
后面的两个斜杠会被删除,因此您可以在重写规则的正则表达式模式中匹配它。
如果将这些规则放在/search/
目录中,它们根本不起作用。您需要从尝试匹配它的模式中删除“搜索”,因为URI中将缺少“搜索”,因此您无法与其匹配:
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /search/dl/(http://[^\ \?]+)
RewriteRule ^dl/ /search/download.php?url=%1 [L]