我有这个.htaccess文件将所有请求移动到index.php?request =(URI),详细说明它们,但以-file/
开头的URI表示我们正在尝试访问公共文件。在system / root /内部,只有管理请求的公共index.php文件,以便最终用户看不到任何系统/文件。而application / public /只包含CSS,图片,javascript和公共内容。
这样安全吗?
RewriteEngine On
RewriteRule -file/(.*) application/public/$1 [L]
# RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ system/root/index.php?request=$1 [NC,L]
它有效,但此代码是否有更多应删除的内容或者应该添加的内容?
注释行现在有什么意义吗?
答案 0 :(得分:1)
应该是
RewriteRule ^-file/(.*) application/public/$1 [L]
否则,它会匹配像
这样的东西http://domain.com/controller/method/any-file/
除非您知道在任何-file
请求中永远不会使用system/root
。
答案 1 :(得分:0)
如果要通过index.php放置每个输出,则应将其他文件放在文档根目录之外。如果你这样做,你只需要.htaccess将请求重定向到index.php,但你不会有暴露你不想暴露的文件的风险。
那说,对我来说似乎没问题。