0

include()在某些脚本中包含 ( ) 文件。但是,如果有人通过浏览器输入文件的路径作为 URL,我希望服务器提供 404 错误。我该怎么做?

4

3 回答 3

0
# 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>

也许更好的方法是在index.php文件中定义一个常量并检查该常量是否在其他脚本中定义。如果不是,则返回 404 状态并显示 404 模板。

于 2013-06-20T00:01:48.810 回答
0

将文件放在文档根目录之外的某个位置。从 Web 访问不会找到它,但脚本仍然可以使用本地系统中的绝对文件路径。

/-- home -- docroot -- index.php 
     |
     +- scripts -- myscript.php

http://www.example.comindex.php_/home/docroot

index.php包括/home/scripts/myscript.php

于 2013-06-20T00:04:20.483 回答
0

有很多方法可以做到这一点。我的第一个建议是将您不打算通过 Web 服务器实际提供的所有文件移出 Web 服务器根目录。

如果您不能或不会这样做,您当然可以使用 Apache .conf 文件或 .htaccess 来限制对您不想访问的某些目录或文件的访问。

如果您无权访问服务器配置,则可以在每个包含文件的顶部添加一些简单的代码,以在未以正确方式访问文件时返回 404 标头(通常通过在页面上设置一些标志来完成将包含该文件并在包含文件中测试该标志)。

于 2013-06-20T00:12:42.210 回答