我在网络服务器上使用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]
子域开始正常工作。
答案 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>