一直在寻找2天,并不能完全得到正确的解决方案,由于我对这个项目,所以希望有人能帮助缺乏的mod_rewrite和时间限制的理解。的.htaccess中的子目录“覆盖”父htaccess的
目的
要改写到根index.php的所有请求,如果客户端没有正确的cookie。 如果客户端有正确的cookie,可以让他们按照自己的意愿进行浏览。
问题
在我的子目录中的htaccess正在precendence在我的根htaccess的,所以请求,如www.mydomain.com/subdir/index.php arn't被重定向。
我的根的.htaccess
Options FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_COOKIE} !^.*pass.*$
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule ^(.*)$ http://www.mydomain.com/index.php?url=$0 [NC]
我子目录的htaccess
RewriteEngine On
RewriteBase/
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
理想我想创建一个密码保护区域,所以其他信息所有的请求都被路由到index.php在哪里可以输入密码,并在验证后创建cookie,允许自由浏览内容和子目录。所以如果有更好的方法来完成这个,那么请让我知道,而且我没有去.htpasswd,因为我需要自定义登录,错误和启动页面。
此外,子目录的.htaccess是ExpressionEngine URL处理程序。
谢谢。
不管你如何解决这个问题,检查一个cookie的存在不是很好安全。伪造一个是微不足道的,因为你没有验证cookie中的数据,只是检查它的存在),所以你的“安全”系统是微不足道的。 –
@Abe只是一个建议,但你有没有想过实现HTTP认证,如果你唯一的希望允许访问directorys:http://uk.php.net/manual/en/features.http-auth.php –