0

我在 web 服务器上有工作的 CakePHP 应用程序,现在我想在子域上有 WIP joomla。而且由于我处理子域的虚拟主机方式,我无法在 htaccess 中编写适当的条件以使其正常工作。默认情况下,我的 CakePHP 应用程序位于服务器上的 /www fodler 中,它的 htacces 如下所示

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

我的虚拟主机提供商处理子域的方法是在 /www 的子文件夹中创建文件夹,该文件夹被命名为所需的子域并重定向到它。

因此,如果我想创建子域 joomla.mydomain.com 我必须创建文件夹 /www/subdom/joomla,然后将适当的条件和规则添加到 htaccess

# subdomains(with or without www in the begenning)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]

但是当它被添加到 htaccess cakePHP 像以前一样工作时,但是访问 joomla 子域会引发内部服务器错误。但是,如果我注释掉最后的重写规则

   #RewriteRule    ^$ app/webroot/    [L]
   #RewriteRule    (.*) app/webroot/$1 [L]

子域开始正常工作。

4

1 回答 1

0

我在这里写了一篇关于在 CakePHP 中使用其他应用程序的博客文章

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteRule (some_folder/.*) $1 [L] # adjust the regex to what you want.

    # normal cake rules
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
 </IfModule>
于 2013-11-01T14:16:35.140 回答