Claro. Eu faço a mesma coisa.
Quando um usuário faz login, eu dou a ele um cookie, crio um token em /t/
tokenid S= tokenid ;PATH=/
Em seguida, posso usar RewriteCond
para verificar a existência do arquivo:
RewriteEngine on
# check for no cookie being set
RewriteCond %{HTTP:Cookie} !S=([a-zA-Z0-9]+)
RewriteRule ^/*protected/ /login.html [L,R]
# check for an invalid cookie being set
RewriteCond %{HTTP:Cookie} S=([a-zA-Z0-9]+)
RewriteCond /t/%1 !-f
RewriteRule ^/*protected/ /login.html [L,R]
Por fim, um coletor de lixo é executado periodicamente e exclui tokens antigos:
find /t -type f \! -atime +1 -delete
Para que o atime seja atualizado automaticamente, tenho /t
montado sem noatime
, e tenho acesso à Web (mas não indexado) e parte das referências de folha de estilo /loggedin.txt
que é reescrito como:
RewriteCond %{HTTP:Cookie} S=([a-zA-Z0-9]+)
RewriteRule ^/*loggedin\.txt$ /t/%1 [L]