【发布时间】:2019-08-03 02:10:56
【问题描述】:
我正在处理一个 codeigniter 项目,现在我已将其上传到实时服务器。我的问题是,如果我只访问网址,我什么也得不到。我需要访问 url,然后添加我的项目所在的文件夹。
示例myurl.com/index
我希望它自动在 url 中加载该索引文件夹,当有些人只是在 myurl.com 中键入时
我的 .htaccess 文件夹如下所示
RewriteEngine On
RewriteBase /index
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
这也是在 apache 服务器上。
//////////////UPDATE 由于移动到 apache 服务器,无法在没有 .extension 的情况下显示图像,没有 localhost wamp 也可以。
所以我允许上传图片,唯一允许的图片是 .png 、 .jpeg 和 ,.jpg 文件类型。
在控制器中,我使用时间函数$image = time(); 来随机化文件名。它将文件引用上传到数据库并将文件保存到资产中的文件夹中,如下所示,
文件路径
src="http://mywebsite.com/index/assets/images/posts/12345678"
我也用它在网站上显示图像。
在我的本地主机上这很好用。
在我的 apache 实时服务器上,这不起作用,直到我在文件名后面放了一个 .png 或 .jpg 。我去了其他网站,发现他们没有这个,所以我知道它要么是我的 htaccess 要么是服务器。
【问题讨论】:
-
您是否在
config.php文件中设置了$config['base_url'] = https://yourdomain.com? -
是的,我将其设置为 $config['base_url'] = 'http://'。 $_SERVER['HTTP_HOST'] .'/index/'; index 是项目文件夹的名称。
-
这不是很推荐,因为您无法控制
HTTP_HOST元素输出的内容。尝试 FQDN。另外,请注意您的.htaccess已经重写为/index,因此通过将您的基本URL 也指向index,您可能会双重执行。可以肯定的是,您希望拥有的 URL 是example.com/index/controller/method,对吗? -
是的,我期望的 url 是 example.com/index/controller 我不需要调用的方法,因为我的控制器具有 index() 函数,因此它会自动调用它。我尝试只使用基本 url 并没有改变任何东西。
标签: php apache codeigniter .htaccess