我已经安装了codeigniter,正在运行,一切都很好。除了我想现在为我的用户提供上传图像的方法。我认为放置文件夹的唯一地方是在应用程序目录中(在我的情况下恰当地重命名为“app”)。无论如何。由于它是一个MVC,我需要在所有地方运行重写条件。我认为这是其中一种情景。
我需要的是在app文件夹
中有一个适用于此子文件夹的条件我原来的重写条件是
RewriteCond $1 !^(index\.php|static|robots\.txt)
哪个适用于那些但不适用于这一个案例,所以我需要一个适用于上述但支持app / upload的新条件(这是否可能)?
答案 0 :(得分:2)
如果你将资产保持在application/
之外(如罗伯特所提到的那样),生活就会轻松得多。
有大量优秀的资产管理Sparks你也可以选择协助解决这个问题 - 我为我的CI项目撰写了一篇名为sk-asset的项目,该项目提供了大量的视图助手和帮助。结构如下:
... 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>
答案 1 :(得分:1)
上传文件夹不必位于您的应用程序目录中。事实上,如果它不在其中,它会更好。这样,您可以将应用程序与内容(上载)分开。 如果你这样做,你也不需要重写条件。 这就是我的CI目录的样子:
/application
/assets
/uploads
/system