0

我的 CakePHP 应用程序位于一个子目录中,以防止它崩溃到为网站的一部分提供支持的 Wordpress 安装中:

example.com/ <--root
    /_wp     <--Wordpress installed here
        /page1
        /page2
    /_cake   <--CakePHP installed here
        /page3
        /page4

为了保持一致性,我使用 mod_rewrite 规则将 URL 从 example.com/_cake/pageX 重写为 example.com/pageX 等。这基本上有效,但 CakePHP 仍然使用 /_cake/pageX 创建链接。因此,如果用户将鼠标悬停在链接上,“_cake”将显示在浏览器底部,当然也将显示在源代码中。

有没有办法将 CakePHP 配置为认为它实际上位于站点根目录中,以便为链接等创建所需的 URL?

4

1 回答 1

0

我还没有找到按照您想要的方式配置 CakePHP 的方法。

如果您使用HtmlHelper::linkor创建链接Router::url,则可以将成员添加$url['base'] = false$url数组参数。这可以防止_cake在 URL 前面插入前缀。

作为替代方案,您可以创建自己的link()url()函数,它调用HtmlHelper::link并始终添加base = false.

为此,您还必须在文档根目录中有一个 .htaccess,它将请求重写到它们的真实目的地

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /_cake/$0 [L]

您还必须注意发往_wp目录的请求。

于 2013-04-09T21:18:36.253 回答