我正在尝试为我的应用程序设置子域名,因为我不希望将管理代码混合到与常规用户代码相同的文件夹中。我在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]
任何有助于实现这一功能的帮助将不胜感激。
答案 0 :(得分:2)
您可以将此代码放入.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]
另请报告更多详细信息,例如哪些网址无效。看看的好地方是apache error.log和访问日志。