Php 服务器上的特定文件是否可以对特定的脚本集可见,但通过URL访问时返回404错误?
我在某些脚本中要包含文件(Php 服务器上的特定文件是否可以对特定的脚本集可见,但通过URL访问时返回404错误?,php,file,.htaccess,include,Php,File,.htaccess,Include,我在某些脚本中要包含文件(include())。但是,如果有人通过浏览器输入文件路径作为URL,我希望服务器提供404错误。我该怎么做?#将403映射到404错误页,问题。不是个好主意。。。 # map 403 to 404 error page, prob. not a good idea... ErrorDocument 403 /error/404.html <Files *.php> Order Deny,Allow Deny from all </Files
include()
)。但是,如果有人通过浏览器输入文件路径作为URL,我希望服务器提供404错误。我该怎么做?#将403映射到404错误页,问题。不是个好主意。。。
# map 403 to 404 error page, prob. not a good idea...
ErrorDocument 403 /error/404.html
<Files *.php>
Order Deny,Allow
Deny from all
</Files>
<Files index.php> # <- allow direct access to index.php only
Order Allow,Deny
Allow from all
</Files>
ErrorDocument 403/error/404.html
命令拒绝,允许
全盘否定
#将文件放在文档根目录之外的某个位置。从web访问找不到它,但是脚本仍然能够使用本地系统中的绝对文件路径
/-- home -- docroot -- index.php
|
+- scripts -- myscript.php
http://www.example.com
从/home/docroot
index.php
包括/home/scripts/myscript.php
有很多方法可以做到这一点。我的第一个建议是将不打算通过web服务器实际提供服务的所有文件移出web服务器根目录
如果您不能或不愿意这样做,您当然可以使用Apache.conf文件或.htaccess来限制对不希望访问的某些目录或文件的访问
如果您没有访问服务器配置的权限,您可以在每个include文件的顶部添加一些简单代码,以便在文件未以正确方式访问时返回404头(通常通过在页面上设置包含该文件的某些标志并在include文件中测试该标志来完成).将文件放在文档根目录之外。我的意思是在404上有一个自定义的404页面(使用htaccess)来指向,这很容易设置。