我有这个目录结构:
/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为什么我无法匹配“任何角色”?
答案 0 :(得分:0)
您的规则正在循环,请先尝试添加条件:
RewriteEngine On
RewriteCond %{REQUEST_URI} !public/
RewriteRule ^(.*)$ public/$1 [L]