取消除LAN htaccess以外的所有目录列表

时间:2014-01-05 15:22:13

标签: regex apache .htaccess mod-rewrite apache2

我想使用htaccess停用除我的本地IP以外的所有目录列表。

这样做很好,但只适用于一个IP地址:

    # deactivate directory listing if not coming from local
    Options -Indexes
    <If "%{REMOTE_ADDR} == '192.168.188.44' ">
      Options +Indexes
    </If>

我如何对来自IP的所有192.168.*地址执行此操作?

我在Windows上使用Apache2 2.4.4,在我的ubuntu服务器上使用2.2.2。 显然上面的代码块在Apache2 2.4之前不起作用。 因此,如果某些代码段可以在两个系统上运行,那就太好了。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以在较旧/较新的Apache版本中通过mod_rewrite执行此操作。

将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [F]