在子目录中设置 CakePHP; Wordpress 安装在根目录下
Posted
技术标签:
【中文标题】在子目录中设置 CakePHP; Wordpress 安装在根目录下【英文标题】:Set up CakePHP in a subdirectory; Wordpress is installed in the root 【发布时间】:2012-10-08 11:35:27 【问题描述】:我一直在寻找解决方案 2 小时,但似乎没有任何效果......这是我的问题:
我在根目录 (var/www) 中安装了 WordPress。因此,通过转到http://www.geekderek.com,我看到了我的 wordpress 网站。
我把 Cakephp 放在一个子目录 var/www/cakephp 中。我希望能够通过以下网址查看我的 CakePHP 应用程序:www.geekderek.com/cakephp。
然而,目前这个 url 只返回一个 Wordpress 页面,上面写着“找不到内容”。
我相信这个问题可以通过在我的根目录中修改 .htaccess 来解决。所以这是我的 .htaccess:http://pastebin.com/sXJTRstB
如您所见,我在默认的 WP .htaccess 文件中添加了这一行:
RewriteRule ^cakephp(/(.*))?$ cakephp/app/webroot/$1 [QSA,L]
但是,由于某种原因,这似乎不起作用。
谁能告诉我什么是错的?非常感谢!
【问题讨论】:
【参考方案1】:我有类似的设置,我的蛋糕应用程序在子目录中,我的根 .htaccess 有这个重写规则:
RewriteRule ^cakephp/(.*)$ /cakephp/$1 [L,QSA]
其余的都通过常规的 cakephp 设置处理。
我的 /cakephp/app/webroot/.htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
希望这对你也有用:)
【讨论】:
谢谢,但这对我不起作用。我仍然不断得到一个 wordpress 页面......【参考方案2】:thanat 的回答几乎对我有用。我只需要编辑 RewriteBase 来阅读
RewriteBase /cakephp
并确保 apache conf 允许我的根目录覆盖其之前的选项
<Directory "/my/root/dir">
AllowOverride All
</Directory>
但话又说回来,我的 app 目录位于 apache 设置的 DocumentRoot 之外。 cakephp 目录实际上是 webroot 本身。所以我的目录结构如下
/my/root
/my/root/app #cake's app dir without webroot
/my/root/dir #apache DocumentRoot (your wordpress is here)
/my/root/dir/cakephp #cake's webroot
还要确保编辑 /my/root/dir/cakephp/index.php
,以便它知道 app 和 cake 的库目录在哪里。
【讨论】:
【参考方案3】:这是我的情况,使用 laravel 但它们是相同的。
https://community.bitnami.com/t/laravel-application-in-subdirectory-of-wordpress-website/79535/2
只需要改变
AllowOverride None => AllowOverride All
【讨论】:
以上是关于在子目录中设置 CakePHP; Wordpress 安装在根目录下的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Cakephp 4 的另一个插件中设置对插件的依赖?
在 app_controller 中设置一个变量并在 CakePHP 布局中使用它
CAKEPHP 我是不是必须在控制器中设置 $this->data 才能使用表单助手