问题描述
||
我正在尝试为我的应用程序设置一个子域,因为我不希望将管理代码与常规用户代码混合到同一文件夹中。我在PHPfog服务器上使用CakePHP,所以只能使用.htaccess来创建子域。我已启用通配符子域支持。
这是我的文件夹结构:
app
app-admin
cake
plugins
vendors
index.php
.htaccess
\'app \'文件夹是\“普通用户\”站点代码所在的位置。当然,\“ app-admin \”文件夹适用于管理员。
我正在尝试获取一条特定的重写规则,该规则会将所有要重定向到admin.mydomain.com的内容重定向到\“ app-admin \”文件夹。所有其他子域均应忽略(发送到\'app \'文件夹)。
CakePHP应用程序中的.htaccess库存文件如下所示:
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
现在,我没有运气尝试此操作:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^admin[NC]
RewriteRule ^$ app-admin/webroot/ [L]
RewriteCond %{HTTP_HOST} ^admin[NC]
RewriteRule (.*) app-admin/webroot/$1 [L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
任何帮助获得此功能的方法将不胜感激。
解决方法
您可以将此代码放入.htaccess中,然后重试:
Options +FollowSymlinks -MultiViews
RewriteEngine on
RewriteCond %{HTTP_HOST} ^admin\\. [NC]
RewriteRule ^(?!app-admin/) app-admin/webroot%{REQUEST_URI} [L,NC]
RewriteRule ^(?!app/) app/webroot%{REQUEST_URI} [L,NC]
另外,请报告更多详细信息,例如哪些URL不起作用。看的好地方是apache error.log和访问日志。