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