我有这个。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]
-
它工作,但是这段代码是否有更多的东西应该被删除或应该添加的东西?
-
注释行现在有意义了吗?
应该是
RewriteRule ^-file/(.*) application/public/$1 [L]
否则,它将匹配像
这样的内容http://domain.com/controller/method/any-file/
除非你知道你永远不会在任何system/root
请求中使用-file
。
如果您希望通过index.php存放每个输出,则应该将其他文件放在文档根目录之外。如果你这样做,你只需要.htaccess重定向请求到index.php,但你不会有暴露你不想暴露的文件的风险。
话虽如此,我觉得还可以。