我使用 Composer 在本地 PC 中设置 CodeIgniter4。我也完成了开发。
问题是,我正在尝试将此应用程序部署到具有 cPanel 的共享主机。
我已将内容(spark 和构建文件除外)压缩到我的共享主机中的
/public_html/
文件夹。因为主域指向这个/public_html/
我没法改
现在面临的问题是,如果我访问
www.mysite.com/public
,它会加载网站。但是如果我只访问域名就不会加载www.mysite.com
我的目录/文件结构如下(在服务器中):
所以我基本上希望在我只访问域时为网站提供服务。我的第二个问题是,从我分享的屏幕截图来看,是否有任何文件或文件夹不需要在生产服务器中?
编辑:
这是我试过的
.htaccess
里的/public_html/
文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/index.php/$1 [L]
我建议你这样做:
将“public”文件夹中的文件放入服务器上的“public_html”文件夹中。
对于其他的CI目录和文件,创建并放置在服务器根目录名为“ci”的文件夹中,不要将它们放在“public_html”中,以防万一,任何人都无法访问。
您的 index.php 将位于“public_html”中,现在您将变量“$pathsConfig”更改为该路径。 $pathsConfig = FCPATH 。 '../ci/app/Config/Paths.php';
它应该工作...
尝试将此添加到您的
/public_html/.htaccess
:
DirectoryIndex /public/index.php
RewriteEngine On
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
RewriteRule ^(.*)$ public/$1 [L]