0

我决定尝试在本地工作并稍后在我的现场网站上安装新版本,而不是在我的网站上实时工作。

所以我正在使用 Codeigniter 并具有以下结构。

/htdocs/kow(网站)/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。

4

3 回答 3

1

您是否使用 .htaccess 从网址中删除 index.php ?/htdocs/kow 是安装 CI 的项目的基本目录吗?

您需要将 kowmanagers 放在控制器目录中,并指定要调用的控制器,我不确定 CI 是否支持从目录调用默认控制器,除非您在 routes.php 配置文件中指定它。

无论如何,如果您想要一个准确的答案,请提供更多信息。

于 2012-04-28T19:21:59.180 回答
1

如手册所述,您需要为每个应用程序创建一个 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]
于 2012-04-28T19:23:16.357 回答
1

kowmanager 中有什么,为什么要进行两次重写?如果您的目录结构是我假设的那样,您可能只需从 .htaccess 文件中删除第二个 kowmanager 指令即可。

codeigniter 在哪个文件夹?您要做的就是重写 url 以删除 index.php,但除非您将 url 映射到 codeigniter 的 index.php,否则它将永远无法加载控制器。

Apache 有很多关于 url rewrite 的信息。它的阅读量很大,而且行为总是很挑剔,但也许它会帮助你:

否则,更多信息将帮助我们帮助您。PS我也会用apache标记它,因为这就是问题所在,而且你更有可能让对apache有很多了解的人来查看你的问题。

于 2012-04-28T19:38:21.593 回答