如何在Apache中只允许一个文件

时间:2011-10-16 17:44:25

标签: php .htaccess apache

我有一个index.php的引导文件,我只允许这个页面被其他人调用。

我已经提出了下面的代码,我收到了内部500错误。我喜欢显示日志文件,但我不能,因为我在共享主机上运行它,但我知道它是CGI模式。

我将该代码放入.htaccess并收到错误并将其放入php.ini并且无效。

<File /index.php>
  Allow from all
  Require None
  Satisfy Any
</File>

我做错了什么?

1 个答案:

答案 0 :(得分:2)

我所做的只是将所有请求重定向到index.php文件并让索引文件处理任何错误请求,因为它已经处理了所有友好的URL请求和所有内容。这样您就不需要索引文件中的额外代码。它会正常运行并看到'somefile.php'和他们试图打开的页面,并确定这不是一个有效的页面打开和错误输出,就像任何其他无效路径一样,至少它会像我的方式那样建立。

RewriteEngine On
RewriteBase /
RewriteRule .* index.php [L]

如果您不像我一样使用子域,则必须排除任何图像或CSS文件夹,或者您也可以使用索引文件处理它们。

排除图片和css文件夹的示例:

RewriteRule !^(images|css)/.* index.php [L]

或者,如果您不想这样做,可以将所有不允许的文件发送到-

RewriteRule !^(index\.php|images/.*|css/.*) - [L]