我的CakePHP应用程序位于一个子目录中,以防止它崩溃到为网站的一部分提供动力的Wordpress安装中:
example.com/ <--root
/_wp <--Wordpress installed here
/page1
/page2
/_cake <--CakePHP installed here
/page3
/page4
为了保持一致性,我使用mod_rewrite规则将example.com/_cake/pageX中的URL重写为example.com/pageX等。这基本上有效,但CakePHP仍然使用/ _cake / pageX创建链接。因此,如果用户将鼠标悬停在链接上,那么&#34; _cake&#34;将显示在浏览器的底部,当然还会显示在源代码中。
有没有办法让CakePHP认为它实际上在网站根目录中,所以它为链接等创建了所需的URL?
答案 0 :(得分:0)
我还没有找到按照你想要的方式配置CakePHP的方法。
如果您使用HtmlHelper::link
或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
目录的请求。