htaccess - 子文件夹中的目录/文件可通过父文件夹访问

时间:2014-06-30 14:21:29

标签: .htaccess mod-rewrite url-rewriting

我有这个目录结构:

/public_html
    /main
        /directory1
        /directory2
        file.php
        /public
            /js
            file1.php

我想阻止/隐藏主文件夹中的所有目录和文件期望公开,当我转到mysite / main / file1.php时,这应该返回我在mysite / main / public / file1.php中的文件 与文件夹js相同mysite / main / public / js /应该可以通过mysite / main / js /

访问

我的主目录中有.htaccess文件,其中包含:

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>

RewriteEngine On

RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

但服务器返回500内部错误(服务器遇到内部错误,无法完成您的请求。)。

同样:

RewriteRule ^(.+)$ public/$1 [L]

但是,例如(测试),当我改变这个:

RewriteRule ^f(.+)$ public/f$1 [L]

我可以通过url mysite / main / file1.php

访问file1.php

为什么我无法匹配“任何角色”?

1 个答案:

答案 0 :(得分:0)

您的规则正在循环,请先尝试添加条件:

RewriteEngine On
RewriteCond %{REQUEST_URI} !public/
RewriteRule ^(.*)$ public/$1 [L]