2011-08-16 24 views
1

是否可以通过自定义表单来保护Apache上的目录?我有一个充满静态HTML文件的目录,它基本上是一个完整的静态网站。我想用密码保护这个网站。是否可以使用自定义表单来保护Apache上的目录?

我知道我可以使用.htaccess,但我宁愿有一个自定义表单/数据库来保护网站。我知道如何在PHP中编写足够好的代码来创建表单,数据库并进行身份验证。我不知道的是,如果用户未通过身份验证,如何告诉Apache重定向到该表单。

更新:我会很好,使用其他身份验证模块。我正在寻找一个类似于IIS Forms身份验证的系统。如果用户未登录,则访问目录中的任何文件将重定向到登录表单。登录后,他们可以查看目录中的任何文件。

+0

是,重写这个目录中的所有请求到PHP/Python的/任何一种语言脚本,并验证。如果用户被允许访问,该脚本将打印请求文件的内容,否则显示登录表单。 Apache不知道有关身份验证的任何信息,它只是重写所有请求。 –

+0

@DanGrossman - Apache必须知道有关身份验证和会话才能工作的.htaccess。 – Justin808

+0

不,不,你为什么这么说? HTTP基本认证是完全无状态的,服务器上没有会话。 –

回答

1

伪代码如下:

if user authenticated: 
    read a file and output into browser (or return 404) 
else: 
    show the form 
end 

以下.htaccess将每个请求改写为.html文件到index.php

RewriteEngine on 
RewriteCond %{REQUEST_URI} \.html$ 
RewriteRule \.html$ /index.php [QSA,L] 

你会找到你要求.html文件名中$_SERVER['REDIRECT_URL']

(大多数已知的PHP框架的使用这种或类似的做法。没有任何幻想的意味。)

相关问题