我在 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]
子域开始正常工作。