htaccess在root用户拒绝所有内容,允许在重写后访问匹配的网址

时间:2017-02-03 09:08:58

标签: apache .htaccess mod-rewrite

我正在尝试在共享主机上保护应用程序,我只能编写.htaccess文件。一切都在公共文件夹www。

我想限制只访问一个子目录,同时禁止访问所有其他子目录。我还希望根网址http://<domain>/显示该允许目录的内容。

www/
├── ...
├── private/
├── public/ (I want to allow access to this one only)
└── .htaccess

到目前为止,我的.htaccess看起来像这样:

RewriteEngine on
RewriteRule ^(.*)$ /public/$1 [R]

Order allow,deny
Deny from all

<Files "/public/*">
    Allow from all
</Files>

有了这个,如果我去访问http://<domain>/public一切正常。但是,如果我去http://<domain>/,我会拒绝403访问。

如何重定向根URL以显示我的公用文件夹的内容,同时仍然拒绝访问根目录中的所有其他内容?

1 个答案:

答案 0 :(得分:0)

您可以使用此htaccess

RewriteEngine on

RewriteRule ^$ /public/ [L,R]
RewriteRule !public - [R=403]