我目前有这个 CakePHP 设置:CakePHP中的变量前缀路由
用于处理通配符子域的DNS*.example.com和 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]