2012-01-16 74 views
0

我被困在我想要的URL,其中包含一些文件(HTML,SWF等)的文件夹,我验证用户后可访问的情况。codeigniter控制访问url /文件夹

例如。

URL访问是:

A - http://mysite.com/files/version/1/file.swf

这上面的网址是从链接访问,

乙 - http://mysite.com/view/1

我已经实施了一个从普通用户隐藏URL A的方式,但是如果用户以某种方式是半技术人员,则他可以从萤火虫或其他工具知道swf文件的位置。所以,为了使访问文件安全,我该怎么办?

如果用户以某种方式知道第一个URL(A),然后在浏览器中输入它,我必须检查用户是否已登录,如果验证完成,则允许加载URL A.

因为在CI中,控制器名称不能与根目录中的文件夹名称相同,在这种情况下,我不能有一个名为“files”的控制器。所以,使这个安全访问url工作的唯一选择是使用htaccess规则/ cond。如果这是唯一的选择,那么如何通过htaccess来实现,如果没有,那我还有什么其他的选择。

请问CodeIgniter的URI路由工作,因为当我试图像这样:

$路线[“文件/版本/ 1 /(:任何)”] =“查看/ $ 1”;

,它不工作,也许是因为没有控制器/功能/参数为文件/版本/ 1 ...

寻找快速的帮助。谢谢

回答

2

没有一个确定的方法来做到这一点,例如,使用.htpasswd。

你可以实现的一件事是“安全通过默默无闻”。在这种情况下,您可以将所有请求重定向到文件的URL http://mysite.com/view/file-id,然后直接加载请求的文件,而不是直接加载.php模板和相应的头文件 - 无论是图像,Flash文件还是其他文件。

但它的确依赖于文件将如何管理,因为每个文件都需要数据库中的一个条目,并且您必须为不同类型的文件输出不同的标题。如果有人仍然设法猜测文件的路径,它可以直接访问。