停止Apache解码URL组件

时间:2014-04-08 09:55:39

标签: php regex .htaccess

我不知道标题是否说明,但基本上,我使用.htaccess使用URL将整个URL传递给我的PHP文件。

示例:http://example.com/var1/var2/http://example.net/logo.png/image.png

在这种情况下,logo.png会被我的代码放在image.png里面。

我已尝试使用Javascript对变量网址进行编码。

http://example.org/utilities/banner-generator/Testyz/Testy/http%3A%2F%2Fstatic.example.com%2Ffiles%2Favatar%2F1498768_1.png/banner.png

这就是URL的样子,但Apache仍然将编码的斜杠视为正常的斜杠。

是否可以阻止它这样做?

1 个答案:

答案 0 :(得分:1)

诀窍是在B条件下使用THE_REQUEST标记。

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+utilities/banner-generator/([^/]+)/([^/]+)/(.+?)/banner\.png [NC]
RewriteRule ^ /include/image/banner.php?name=%1&description=%2&icon=%3 [NE,B,L,QSA]