2011-03-07 50 views
1

我正在建立一个新的网站,目前如果我去mydomian/php/someScript.php它会执行php脚本。我如何让包含这个的文件仍然包含这个,但不让其他人从浏览器执行这些脚本。目前我有这在我的.htaccess文件:.htaccess权限来阻止外部世界执行php脚本

deny from all 

但是当我访问该网站一个AJAX POST请求作出此文件夹中的脚本,并取回一个403错误。

有关如何实现此目的的任何想法都是值得欢迎的。

==== ====编辑

为清晰起见,在php目录中的某些文件是由AJAX请求,现在我已经意识到,这些文件不能具有所需的权限。不过,我还是想提上其他文件这些权限在此目录中

感谢

回答

1

最好的解决方案是尽可能将它们放在网站根目录之外,这样您可以包含它们,但Web服务器无法提供它们,在这种情况下根本不需要配置。

编辑:我注意到你想允许通过AJAX访问脚本。没有办法做到这一点,因为无法通过任何可靠性来区分AJAX请求或其他类型的HTTP请求。

+0

我编辑了我的问题,因为我仍然想在此目录中为其他文件添加权限 – Aly 2011-03-07 21:06:01

+0

您可以将所有私有脚本放在Web根目录之外的目录中,并将AJAX脚本放在Web根目录中的其他目录中。如果他们需要通过相对路径相互引用,他们不必都在同一位置。 – GordonM 2011-03-07 21:09:47

1

您仍然可以包括从PHP,例如那些文件使用includerequire

通过AJAX调用它与在浏览器中输入URL调用它没有区别 - 即,您不能阻止直接访问,但允许AJAX访问。

+0

啊我看到了,如何编辑我的.htaccess文件来说明所有这些文件的拒绝? – Aly 2011-03-07 21:03:40

+1

四处看看 - 关于如何只允许授权用户访问脚本,有很多问题/答案。 – 2011-03-07 21:31:39