0

我安装了 codeigniter,正在运行,一切都很好。除了我现在想为我的用户提供一种上传图像的方法。我能想到的唯一放置文件夹的地方是应用程序目录(在我的例子中恰当地重命名为“app”)。反正。由于它是一个 MVC,我需要在所有地方运行重写条件。我相信这是其中一种情况。

我需要的是在 app 文件夹中有一个适用于这个子文件夹的条件

我原来的重写条件是

RewriteCond $1 !^(index\.php|static|robots\.txt)

这对那些人来说很好,但不适用于这种情况,所以我需要一个适用于上述但支持应用程序/上传的新条件(这甚至可能)?

4

2 回答 2

2

application/如果你把你的资产放在外面(正如罗伯特提到的),生活会容易得多。

您也可以从中挑选大量优秀的资产管理Sparks来帮助解决这个问题 - 我为我的 CI 项目编写了一个名为sk-asset的 Spark ,它提供了许多视图帮助器并且结构清晰:

  • /CIAppRoot
    • 资产/
      • css/
      • 下载/
      • 图片/
      • js/
      • 较少的/
      • 瑞士法郎/
      • 上传/
      • xml/
    • 应用/
    • 系统/

... htaccess 设置可以简单地绕过现有文件/目录/等的 CI 路由:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  # block hidden directories
  RewriteRule "(^|/)\." - [F]

  RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>
于 2012-06-29T23:48:57.397 回答
1

上传文件夹不必在您的应用程序目录中。事实上,如果它不在里面,那就更好了。通过这种方式,您可以将应用程序与内容(上传)分开。如果你这样做,你也不需要重写条件。这是我的 CI 目录的样子:

/application
/assets
/uploads
/system     
于 2012-06-28T09:43:11.310 回答