如何删除URL子项目codeigniter 4中的“public”

x6492ojm  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(115)

我在代码igniter 4.3.2中有projectA和projectB。projectA中的projectB。当我使用localhost/projectA/projectB/public/home时,可以调用控制器的默认projectB,但是当我删除url中的“public”时,它就不工作了。url“localhost/projectA/projectB/home”调用projectA中的控制器默认值。我在root projectA中有. httpaccess,如下所示:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]

该怎么办?

frebpwbc

frebpwbc1#

出于安全原因,CI并不建议这样做。如果您想从URL中省略 public,您可以将Web服务器配置为指向 public 目录而不是项目根目录。
但是,如果你真的想删除public目录,你应该确保你已经将index.php向上移动了一级。对于.htaccess,您可以使用以下内容:

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

另外,在index.php中,你需要从require命令中删除../,该命令加载 app/Config/Paths.php

相关问题