【发布时间】:2016-09-27 18:44:12
【问题描述】:
我有 CodeIgniter(CI) 与 Wordpress(WP) 的集成。经过数周的努力,终于在我本地的 XAMP 中进行了集成。
当我将相同的结构移动到服务器/生产环境时,CI 和 WP 之间的集成看起来仍然不错(我这么说是因为 CI 的默认控制器可以工作 /welcome/index.php),但是当我使用任何其他自定义控制器时,我只得到 404。
我根据我的谷歌搜索工作尝试了许多选项,例如 1.tweaking .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 服务器网址:
http://mysitecom/ci/ --> works and gives me default Welcome index page
http://mysitecom/ci/book/ --> Does NOT work and gives me 404 error
为了它,我尝试了以下方法,看看我是否可以强制“预订”作为默认值,但它仍然给了我 404 以获取 http://mysitecom/ci/book/
$route['default_controller'] = 'book';
不确定为什么默认 CI 控制器可以工作,但 apache Web 服务器中的自定义控制器却不能。我可能遗漏了什么,但不确定是什么?
【问题讨论】:
-
你确定你的控制器的文件名和类的首字母只有大写吗?
-
伟大的指针,这当然是一个问题。我现在对控制器和模型类的类和文件名使用大写。该解决方案解决了我的 404,但现在我得到完全没有错误的空白屏幕;检查了所有日志文件,除了“由于可能的配置错误,请求超出了 10 次内部重定向的限制。”
标签: php wordpress apache .htaccess codeigniter