htaccess 重定向整个 url 作为参数

htaccess 重定向整个 url 作为参数

我们创建了一个 iframe 加载器 index5.php,它将显示两个 iframe,iframe1 和 iframe2。可以通过访问 index5.php?url=iframe2url 来设置 iframe2 的内容。因此,转到

domain/index5.php?url=www.serverfault.com 

会在一个 iframe 中加载 serverfault,在另一个 iframe 中加载我们的代码。我们只希望能够在我们自己的域上使用它来防止 XSS,所以我们确保 index5.php 只允许我们的域。

我们还希望预测来自以下来源的所有对我们 WordPress 网站的请求

domain/page 

domain/index5.php?url=http://domain/page

然而,如果我们使用

RewriteCond %{REQUEST_URI} !^/index5\.php$
RewriteCond %{HTTP_HOST} ^domain$
RewriteRule ^(.*)$ http://domain/index5.php?url=http://domain/$1 [R=301,L]

存在无限重定向。我们该如何防止这种情况?

答案1

当你在文件中进行重写时.htaccess(而不是在 apache 配置中),包含该文件的目录的路径前缀将被剥离,如Apache 文档

这意味着重写条件不应包含前导/。相反,它应该是

RewriteCond %{REQUEST_URI} !^index5\.php$

相关内容