也可以在子目录上工作的php登录脚本?

也可以在子目录上工作的php登录脚本?,php,mod-rewrite,apache2,Php,Mod Rewrite,Apache2,我知道为一个目录创建登录脚本很容易。但是,如何使其递归工作(子目录) 谢谢 你可以用几种不同的方法来解决这个问题 您的第一个选择(也是最直观的)是在目录中的每个页面中简单地包含身份验证代码(检查会话等)。这只意味着大量复制粘贴include()语句 但是,如果您希望保护图像或其他文件等非脚本内容,则可以使用Apache的mod_rewrite将对文件的任何调用重定向到处理身份验证的单个PHP脚本。这是一种更可靠的方法,并且被广泛使用,但是它有一个很小的学习曲线来处理mod_rewrite“登录脚

我知道为一个目录创建登录脚本很容易。但是,如何使其递归工作(子目录)


谢谢

你可以用几种不同的方法来解决这个问题

您的第一个选择(也是最直观的)是在目录中的每个页面中简单地包含身份验证代码(检查会话等)。这只意味着大量复制粘贴
include()
语句


但是,如果您希望保护图像或其他文件等非脚本内容,则可以使用Apache的
mod_rewrite
将对文件的任何调用重定向到处理身份验证的单个PHP脚本。这是一种更可靠的方法,并且被广泛使用,但是它有一个很小的学习曲线来处理
mod_rewrite

“登录脚本”您是指HTTP身份验证吗?如果是这种情况,只需将其从任何
标记中去掉,它就可以在子目录中工作。嗨,Henry,我不喜欢默认的http身份验证,因此我正在寻找php解决方案。嗨,Henry,我正在寻找一个mod_重写解决方案,你能告诉我一个好的示例开始吗?Thanks@FLX,我喜欢和它的例子。编写规则时,请确保在正则表达式中捕获请求的文件,并将其包含在新的URI中。这样,您的脚本就可以从
$\u GET[]
中提取请求的文件名。谢谢,我以前用过这篇文章。然而,我遇到的问题是,如果身份验证成功,我不知道php中有什么好方法可以通过无限递归。目前它是:请求->修改->php:已验证!重定向到页面->请求->修改->php:authenticated!重定向到页面->请求。无限期,有什么办法解决这个问题吗?@FLX,您可以编写PHP脚本,使其重定向到一个内部URI,您可以使用
[L]
标志(最后)重写该URI。这将停止处理该规则上的重写,但请记住,将
[L]
[R]
一起使用是无效的。或者,您可以直接从PHP脚本提供文件。如果做得好,这意味着这个过程对用户是完全透明的,他们永远不会看到HTTP重定向。这是我推荐的方法。(当然,第一步仍然使用
mod_rewrite
)你知道你将提供什么文件类型吗?基本上,我在根服务器级别上托管所有内容,从目录到脚本到图像,所以在你登录之前,什么都看不到。你有一个具体的例子来说明你将如何实现这一点吗?谢谢!