我没有在我的网站上实时工作,而是决定尝试在本地工作并稍后在我的实际网站上安装新版本。
所以我正在与Codeigniter合作,并有以下结构。
/ htdocs中/水分配系数(点)/ kowmanager(CMS)
当我加载https:localhost / kow时,它会加载正确的控制器但是由于某种原因,它没有重新确定kowmanager是一个带有自己的应用程序文件夹的kow的子目录,它应该加载在其路由中设置的默认控制器文件。当我加载https://localhost.com/kow/kowmanager时,它会加载一个页面,其中包含/ kow / kowmanager的索引,然后是指向父目录的链接。哪个与CI无关。
在kow目录中,这是我的.htaccess文件。这是问题吗?
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteEngine On
RewriteBase /kowmanager
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
我正在使用xxamp。
答案 0 :(得分:1)
你使用.htaccess从网址中删除index.php吗? 是/ htdocs / kow安装CI的项目的基本目录?
你需要将kowmanagers放在controllers目录中,并指定要调用哪个控制器,我不确定CI是否支持从目录调用默认控制器,除非你在routes.php配置文件中指定它。
无论如何,如果您想要一个准确的答案,请提供进一步的信息。
答案 1 :(得分:1)
您需要manual所述的每个应用程序的index.php页面。
所以我认为您应该将 index.php 复制到 indexManager.php 并在其中更改应用程序文件夹。
$application_folder = "kowmanager";
关于重写我不确定,但我认为这符合:
RewriteEngine On
RewriteBase /kowmanager
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ indexManager.php?/$1 [L]
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
答案 2 :(得分:1)
什么是kowmanager,为什么你有两次重写?如果您的目录结构是我认为的那样,那么您可能只需从.htaccess文件中删除第二个kowmanager指令即可。
哪个文件夹是codeigniter?你要做的就是重写url以删除index.php,但除非你将url映射到codeigniter的index.php,否则它将永远无法加载控制器。
Apache有a lot of info on url rewrite。它阅读很多,行为总是非常挑剔,但也许它会对你有所帮助:
否则,更多信息将帮助我们为您提供帮助。附:我也用apache标记这个,因为这就是问题所在,并且你更有可能让那些了解很多关于apache的人来查看你的问题。