php - codeigniter 在本地 xampp 上工作正常,但在所有自定义 Controller 的 apache Web 服务器上工作 404

标签 php wordpress apache .htaccess codeigniter

我有 CodeIgniter(CI) 与 Wordpress(WP) 的集成。经过数周的努力工作,终于可以在我的本地 XAMP 中进行集成了。

当我将相同的结构移动到服务器/生产环境时,CI 和 WP 之间的集成看起来仍然不错(我这么说是因为 CI 的默认 Controller 工作/welcome/index.php),但是当我使用任何其他自定义 Controller 时,我只得到 404。

我根据我的谷歌搜索尝试了许多选项,例如 1. 调整 .htaccess 2. 更改配置文件 3. 更改路由文件,但没有一个解决方案适合我。我希望有人可以解决这个问题。感谢阅读,下面是详细信息。

网站结构:

Site Root
- All WP files
- .htaccess
- CI folder - contains all CI files
-- .htaccess

WP.htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

CI.htaccess

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

CI 配置文件

$config['base_url'] = 'http://mysitecom/ci/';

本地网址:

http://localhost/ci/ --> works and gives me default Welcome index page
http://localhost/ci/book/ --> works and gives me right page

Apache 服务器 URL:

http://mysitecom/ci/ --> works and gives me default Welcome index page
http://mysitecom/ci/book/ --> Does NOT work and gives me 404 error

说到底,我尝试了以下方法以查看是否可以将“book”强制设置为默认值,它仍然给了我 404 http://mysitecom/ci/ /

$route['default_controller'] = 'book';

不确定为什么默认 CI Controller 可以工作,但在 apache 网络服务器中不能使用自定义 Controller 。我可能遗漏了什么,但不确定是什么?

最佳答案

我注意到,您在配置和 .htaccess 中有未匹配项

$config['base_url'] = 'http://mysitecom/ci/';

在 .htaccess 中

RewriteBase /

这是指网站的根目录 http://mysitecom/

但您的实际应用程序运行在 http://mysitecom/ci/

所以

替换为

RewriteBase /ci/

另一个区域是文件名,请确保所有 Controller 名称都以大写开头。

例如,如果我的 Controller 是 Admin 那么文件名应该是 Admin.php 并且你必须这样声明

class Admin extends CI_Controller{
   --Code here---
}

关于php - codeigniter 在本地 xampp 上工作正常,但在所有自定义 Controller 的 apache Web 服务器上工作 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517146/

相关文章:

php - 如何使用子查询打印多行?

php - 在 Web 服务不可用的情况下测试 Web 服务的客户端

php - 在网页上显示来自 SSH 可访问文件的实时数据的最佳方式

css - WordPress 子菜单未正确显示

php - 在运行模块 mod_fcgid 的 Apache 服务器中上传错误

php - UTF-8贯穿始终

apache - 如何在集群中配置两台 jack 兔服务器?

php - 如何覆盖验证码控制的 Symfony2 登录?

php - Contact Form 7 内容因正则表达式而爆炸

php - MYSQL 查询 - 列出给定距离内未被阻止的事件