Htaccess迫使php运行两次

时间:2017-12-14 19:13:52

标签: php .htaccess

我有以下.htaccess,来格式化获取信息。

htaccess的:

RewriteCond %{HTTP_HOST} ^(www\.)?csbuilder\.io [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?params=$1 [NC,L]

问题是当我应用此规则时,它开始运行php脚本两次! 我想出来了,因为一段代码被处理了两次。

该脚本在数据库中设置随机令牌,每当我重新加载页面时,在数据库中我都会看到不同的令牌,即发送给浏览器。

如果我删除.htaccess规则,它可以正常工作。

有什么想法吗?

解决:

现有规则匹配所有内容。如果您将破坏图像,它将匹配它,并通过 index.php 运行。

因此,我们不需要匹配图像和其他文件。所以将正则表达式改为跟随,解决了这个问题。

RewriteRule ^([\w-/])+$ index.php?params=$1 [NC,L]

感谢。

1 个答案:

答案 0 :(得分:2)

由于所有内容都经过重新编写以通过index.php(一个包含大量路由引擎的常见模式),您可能会看到不同路径的多次执行,因此请密切关注您的访问权限登录。这里最常见的攻击者是浏览器在没有任何提示的情况下询问/favicon.ico