我需要在重定向时在 cookie 中设置 sha1 哈希值,以便我可以检查每个进一步的请求。
据我所知,我只能使用 RewriteRule 在重定向上设置 Cookie:
RewriteRule ^(needCheck)$ /check [L,R=302,CO=myCookie:${sha1(%{myVar})}:.mydomain.com]
但是这是不可能的,因为我在这种情况下无法访问 sha1 函数。但我可以将外部函数与 RewriteMap 一起使用。类似的东西
RewriteMap sha1_map prg:/var/www/mydomain/sha1.sh
RewriteRule ^(needCheck)$ /check [L,R=302,CO=myCookie:${sha1_map:%{myVar}}:.mydomain.com]
但是我不知道如何编写外部函数,以便 sha1 哈希与 Apache 生成的哈希相匹配。有人可以给我提示吗?
任何进一步的请求都会检查哈希值
<If "sha1('%{myVar}') == ...>
或者我可以更简单地实现这一点吗? 感谢您的帮助。
回答我自己。 是的,它就是这样工作的。我的 sha1.sh 错了。 应该是
#!/bin/bash
while IFS= read -r line; do
echo -n $line | sha1sum | awk '{print $1}'\n
done
那么哈希值是相等的。