|
1
4
使用htaccess阻塞文件会使请求者无法访问这些文件,例如页面的访问者。因此,您需要一个代理文件来将访问者的请求传递给这些文件。为此,请看 MVC pattern 以及 Front Controller pattern . 基本上,你想做的是 将所有请求路由到单个入口点 例如index.php和decide,调用哪个操作(脚本)来处理请求。然后你可以 将脚本和模板放在可公开访问的文件夹之外 或者,如果这是不可能的(在某些共享主机上),用htaccess保护文件夹,就像你已经做的那样(拒绝所有人)。
要使用上传脚本,您需要一个类似
一个超级简单的前端控制器就像
然后,您的actionscript将执行您需要对请求执行的所有操作,包括重定向、数据库访问、身份验证、上载内容、呈现模板等—无论您认为需要什么。上面示例中的默认操作如下所示:
有 numerous implementations of the FrontController pattern in PHP . 有些简单,有些复杂。这个 CodeIgniter framework 使用轻量级的MVC/FrontController实现,如果这对您来说是新的,那么它可能不会太强大。
就像上面提到的atli,你可以使用
|
|
|
2
1
您不能真正阻止对文件的直接请求,并且仍然可以让其他请求访问它们。你能做的最好的就是掩盖他们的位置和控制 怎样 它们被访问。 一种方法是创建一个php“switch”脚本,它将为您包含这些脚本,而不是让Apache直接请求它们。
例如,如果你有
你可以添加
这个
这样,直接请求
|
|
|
3
0
可以在.htaccess上设置“全部拒绝”,并从某些可访问目录中包含这些文件 |
|
|
4
0
我想确保PHP页面可以接受post值、获取值并可以重定向到其他页面,但不能通过地址栏直接访问或下载? 只要将Apache配置为将所有.php文件与php应用程序关联,就没有人可以下载php内容本身。所以,如果有人浏览到“mysite.com/image.php”,PHP就会运行。用户将看不到您的PHP内容。 这应该已经在httpd.conf文件中完成,如下所示:
现在,image.php将需要某些post参数。除了实现上面提到的MVC体系结构之外,如果没有提供任何缺少的参数,您可以优雅、安全地处理它们。然后,用户可以直接访问页面,但不能对其进行任何操作。 |
|
|
5
0
许多应用程序只是将脚本之类的文件放在与公用文件夹相同的根文件夹中,而不是公用文件夹(如/public_html/或/www/)。 所以不 根目录/公共目录\html/和 根/公共HTML/脚本/ 但是 根目录/公共目录\html/和 根/脚本/ 访问人员无法访问公用文件夹上方的文件夹中的任何内容,但通过在/public_html/index.php中指定文件“.../scripts/yourscript.php”php可以访问这些文件,而访问人员无法访问。(文件夹../表示“在文件夹层次结构中向上一步”)。 |
|
|
lccv · 使用.htaccess替换URL中的问号 2 年前 |