我目前有一个CakePHP设置:Variable Prefixed Routing in CakePHP
已存在用于处理通配符子域的*.example.com和Apache项的DNS。不幸的是,我似乎无法将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 to app/webroot。我不想修改CakePHP部件的行为,我只需要将上面的示例重写为访问该页面的“等价物”,然后它将由CakePHP的htaccess条目处理。
作为参考,app/webroot/.htaccess
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]发布于 2012-08-16 08:52:29
你是说像这样的东西吗?(将高于上面的应用程序/webroot规则):
RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.example\.com$ [NC]
RewriteRule ^controller/(.*)$ /%1/controller/$1 [L]这应该首先应用,然后app/webroot规则应该生效,并将其指向:/app/webroot/%1/controller/$1。
https://stackoverflow.com/questions/11979201
复制相似问题