我目前有这个 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]