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)来指向,这很容易设置。