【发布时间】:2012-08-16 00:40:14
【问题描述】:
我目前有这个 CakePHP 设置:Variable Prefixed Routing in CakePHP
*.example.com 的 DNS 和用于处理通配符子域的 Apache 条目已经存在。不幸的是,我似乎无法将 CakePHP 的默认 .htaccess 与通配符子域代码合并。
以下是 CakePHP 默认的 .htaccess 代码:
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
我想做的例子:
example.com/controller/action/a -> example.com/global/controller/action/a(global 是文字)
X.example.com/controller/action/a/b/c -> example.com/X/controller/action/a/b/c
本质上使 X 成为第一个“目录”,然后维护 URL 的其余部分。
(X 是任何字母数字字符串)
请注意,文件夹X 绝对不存在,一旦访问,它就会被CakePHP 简单地重写为app/webroot。我不想修改 CakePHP 部分的行为,我只需要将上面的 URL 示例重写为访问该页面的“等效”,然后它将由 CakePHP 的 htaccess 条目处理。
供参考,app/webroot/.htaccess:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
【问题讨论】:
标签: .htaccess cakephp mod-rewrite wildcard-subdomain