我正在尝试在子文件夹中设置CakePHP应用程序,但是从根域运行它,例如,用户请求domain.co.uk
并且他们在{DOCUMENT_ROOT}/version-13/app/webroot
获得了webroot。
托管设置不允许我更改文档根目录,因此我在根目录中有以下.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ version-13/app/webroot/ [L]
RewriteRule (.*) version-13/app/webroot/$1 [L]
</IfModule>
这似乎可以完成这项工作。但是,Cake检测子文件夹并将其添加到它创建的所有URL(例如,$this->Form->create()
操作等),因此我最终将表单发布到domain.co.uk/version-13/signup
而不是domain.co.uk/signup
。
我知道这可能是一件简单的事,但我正在打砖墙。无论我尝试什么,我都无法让它发挥作用!
答案 0 :(得分:3)
很难理解你的设置,你应该解释一下。但如果我做对了,请检查/app/Config/core.php:
Configure::write('App.fullBaseUrl', 'http://example.com');
答案 1 :(得分:0)
将您的RewriteBase /
更改为RewriteBase /version-13/
(在您的.htaccess中),您应该立即设置。
当我没有正确设置本地服务器时,我遇到了完全相同的问题,这迫使我将我的应用程序放在主域的文件夹中。
请注意,您可以multiple apps at one core。这对你“版本化”很有用。
聚苯乙烯。快速搜索谷歌后,我发现了以下内容。没有读得那么好,但看起来它也是一样的。 http://cookingwithcakephp.blogspot.nl/2008/04/installing-cakephp-into-subdirectory.html