.htaccess:拒绝在特定情况下直接访问文件

时间:2014-08-13 05:33:40

标签: php .htaccess

我的webroot中有这些文件:index.php(登录页面),login.class.php,styles.css,然后是目录“accounts”,在该目录中有一些css文件,index.php和formprocess .PHP

因此,当用户访问网站(index.php)时,系统会要求他登录。如果他输入正确的用户名和密码:他会被重定向到accounts / index.php。如果他输错了:他的IP被阻止了。

但是可以通过直接访问accounts / index.php来绕过此登录页面。所以我想阻止它。

我想要的是:用户只有在登录网站时才能访问“帐户”目录及其文件。直接访问应该给403错误。

任何人都可以告诉我如何使用.htaccess或php吗?

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:1)

通过PHP你可以创建一个会话,在登录过程中你可以设置一定的值来打开accounts/index.php让我们说值“香蕉”

授权完成后,您的index.php将拥有此代码:

$_SESSION['banana'] = "true";

然后你的accounts/index.php看起来像这样:

if($_SESSION['banana'] == "true")
{ //authorization went correctly enter code here
}
else
{ //not authorized, return to index
header("location: ../index.php");}

哦,不要忘记两个页面中的session_start();

答案 1 :(得分:1)

我喜欢老学校的技术。 .htaccess仍然适用于我,所以让我提供一个替代解决方案,而不是上面给出的PHP:)

更多信息:在您的网站根目录创建此.htaccess。

# Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

# protect your files by extension
<Files *.php>
Order allow,deny
Deny from all
</Files>

# Deny access to sub directory
<Files accounts/*>
    deny from all
</Files>