这实质上是this question的重复,但有一点需要注意:我想拒绝直接访问根目录下所有名为index.php的文件。拒绝访问除根目录以外的所有.php文件index.php
允许: 的index.php
拒绝: /application/views/settings/index.php
我知道我可以使用PHP来寻找定义的常量或变量,但它是只有使用.htaccess才能实现这一点?这是我到目前为止有:
##
# Disallow direct access to files.
#
<FilesMatch "^(.*)\.php$">
Order Deny,Allow
Deny from all
</FilesMatch>
<FilesMatch "^index\.php$">
Order Allow,Deny
Allow from all
</FilesMatch>
添加第三个FilesMatch
否认"^(.*)/index/index\.php$"
不起作用。
你为什么要这样做?可能有更好的方法来实现你想要的。 –
这是一个MVC应用程序。所有的控制器在'/ application/views'中都有一个对应的目录,默认视图总是被命名为“index”。 这不是什么大问题 - 我总是可以将它命名为“默认”或其他内容 - 但我只想知道是否可以通过.htaccess进行此操作。 – josocblaugrana
所以你想防止直接调用index.php?大多数框架这样做的方式是,他们在某个地方定义一个常量,然后在每个他们不想直接调用的文件中添加一个检查常量:'if(!defined(“CAN_RUN”))die(“This file can'不要直接打电话。“);' –