.PHtaccess用于CakePHP和子文件夹/子域中的joomla

时间:2013-10-31 16:42:19

标签: apache .htaccess cakephp joomla

我在网络服务器上使用CakePHP应用程序,现在我想在子域上使用WIP joomla。而且由于我的webhosting处理子域名的方式,我无法在htaccess中写出适当的条件让它工作。 默认情况下,我的CakePHP应用程序位于服务器上的/ www fodler中,其htacces如下所示

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

我的webhosting提供商处理子域名的方法是在/ 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]

子域开始正常工作。

1 个答案:

答案 0 :(得分:0)

我在CakePHP here

中写了一篇关于使用其他应用的博客文章
<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>