这对每个人来说都是一个奇怪的问题。我有一种情况,现有网站上运行wordpress作为网站的主要CMS,还有一些额外的代码,由于URL结构等原因无法在WP中实现,所以我们想把CI放在同一主持人。
但是,该网站上的CI需要两个潜在的入口点 - 让我们称之为/ userside和/ adminside
我希望两者共享相同的应用程序和系统文件夹,这些文件夹都位于相同的可访问文件夹空间中。
我/用户很容易与WP共存。
这是.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/userside [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /userside/index.php [L]
RewriteRule ^/adminside [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /adminside/index.php [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我的文件夹布局如下
FTP ROOT/
ci/ <- codeigniter root
application/
system/
http/
index.php <- WP index.php
adminside/
index.php <- CI index.php
userside/
index.php <- CI index.php
... wp-content etc
我已将用户的文件复制到adminside并尝试了符号链接,但都无法正常工作。
在CI的application / config中,我将base_url修改为:
list($_trash, $_base, $rest) = explode('/', $_SERVER['REQUEST_URI'], 3);
$config['base_url'] = "http://".$_SERVER['HTTP_HOST']."/".$_base;
这意味着它会自动将URI的第一段作为应用程序库,我调试了这段代码并正确设置它。
现在问题是,当我访问/ userside / somecontroller时,它可以工作,但是,当我访问/ adminside / somecontroller时它没有。我得到了404页。
我可以通过访问/ adminside来访问默认控制器的index()函数 - 但是当我指定控制器和方法时它不起作用。
例如:
http://www.mysite.com/userside/mycontroller/mymethod&lt; - 有效 http://www.mysite.com/userside/mycontroller/mymethod&lt; - 不起作用 - 404显示
/ userside首先设置,除了application / config / config.php之外,我看不到将CI与/ userside联系起来的任何地方
已检查权限且相同,所有者相同。
任何人都知道为什么这不起作用?我不希望将网站拆分为子域,因为我们有特定的原因,因为它与/ userside一起工作,只有一些简单的东西让我不能使/ adminside工作。
答案 0 :(得分:1)
你需要RewriteRule
摆脱index.php 和追加方法:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/userside(.*)$ /userside/index.php$1 [L]
RewriteRule ^/adminside(.*)$ /adminside/index.php$1 [L]
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
答案 1 :(得分:0)
这比我想象的要复杂一点。
您只需将CI的.htaccess放入要运行CI的子文件夹中,然后设置相应的站点URL变量即可。
我确实找到了一个文档,该文档展示了如何通过在CI的index.php中从WP端的根目录加载wp-load.php来从CI访问所有WP的库。
希望这有助于其他人。