0

我使用共享主机。我用 codeigniter 构建了我的 web 应用程序,我的新 web 目录如下:

/home/projName/public_html/proj_v3/

在这个目录下,有index.php、.htaccess。如上所示,我将不同的项目版本分隔在不同的目录中(即:proj_v1、proj_v2、proj_v3)。Web 应用程序允许上传照片,它存储在/home/projName/public_html/proj_v3/application/uploads中。proj_v2目前有最新上传的照片,因为它仍在使用中。因为我有不同版本的项目,所以我想将目录上传放在一个公共目录中,例如/home/projName/public_html。这样对于任何新版本的项目,我都不必将上传文件夹移动到新项目文件夹。这可能会导致停机。

目前,/home/projName/public_html/proj_v2中的 .htaccess 文件是:

Options -indexes
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1/ [L]

我在/home/projName/public_html/中有另一个 .htaccess是:

Options All -Indexes
RewriteEngine On
Rewriterule ^(.*)\.*$  proj_v3/index.php/$1/
RewriteOptions MaxRedirects=3 

基本上我应该如何编辑 /home/projName/public_html/ 中的第二个.htaccess文件,以便如果 web 目录是domain.com/uploads/image.png,它会从/home/projName/public_html/uploads获取图像. 目前,第二个.htaccess文件告诉domain.com指向/home/projName/public_html/proj_v3

4

2 回答 2

0

您要做的是允许真实文件和文件夹的路径存在,同时将其他所有内容重定向到 CodeIgniter,您可以在第二个 .htaccess 文件中使用它来实现这一点:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

绝对值得阅读 CodeIgniter 网站上关于mod rewrite的这篇文章

我之前实际上给出了类似的答案:mod_rewrite in Users/<username>/Sites directory on OSX

于 2012-11-13T13:30:50.983 回答
0
RewriteRule \.(jpe?g|gif|png|wmv|bmp)$ /uploads/$1

可能对你有用。您可以根据需要添加其他格式。

于 2012-11-13T13:28:50.947 回答