这个.htaccess好吗?


Is this .htaccess good?

我有这个。htaccess文件,它将所有请求移动到详细说明它们的index.php?request=(URI),除了以-file/开头的URI,这意味着我们正在尝试访问公共文件。在system/root/中,只有管理请求的公共index.php文件,因此最终用户无法看到任何系统/文件。application/public/只包含CSS,图片,javascript和公共的东西。

  1. 这安全吗?

    RewriteEngine On
    RewriteRule -file/(.*) application/public/$1 [L]
    # RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ system/root/index.php?request=$1 [NC,L]
    
  2. 它工作,但是这段代码是否有更多的东西应该被删除或应该添加的东西?

  3. 注释行现在有意义了吗?

应该是

RewriteRule ^-file/(.*) application/public/$1 [L]

否则,它将匹配像

这样的内容
http://domain.com/controller/method/any-file/

除非你知道你永远不会在任何system/root请求中使用-file

如果您希望通过index.php存放每个输出,则应该将其他文件放在文档根目录之外。如果你这样做,你只需要.htaccess重定向请求到index.php,但你不会有暴露你不想暴露的文件的风险。

话虽如此,我觉得还可以。