我想添加一条到Silverstripe的默认路线。目前,我的应用程序中有一些路由,即/ dev,/ admin和/ api。我希望所有其他不在(虚拟)子目录中的流量由单独的控制器处理。
我一直在玩YAML配置系统,但我似乎无法绕过它。
基本上我想做以下
但是每个其他路径都应该指向MyOwnController。
/ asda / asd也没必要重新路由到MyOwnController。
我制作了一个/mysite/_config/routes.yml文件,其中包含以下内容:
---
Name: myroutes
After: 'framework/routes#coreroutes'
---
Director:
rules:
'$Path': 'MyOwnController'
这打破了网站(只有404' s)。应如何设置?我可以开始摆弄_config.php,但我宁愿遵守标准:-)
答案 0 :(得分:1)
通过.htaccess做什么呢?类似于以下内容(未经测试):
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/admin/
RewriteCond %{REQUEST_URI} !^/dev/
RewriteCond %{REQUEST_URI} !^/api/
RewriteCond %{REQUEST_URI} !^/your/default/route
RewriteCond %{REQUEST_URI} !^/framework
RewriteCond %{REQUEST_URI} !^/assets
RewriteCond %{REQUEST_URI} !^/Security
RewriteCond %{REQUEST_URI} !^/themes
RewriteCond %{REQUEST_URI} !^/cms
RewriteRule (.*) http://www.yourdomain.com/your/default/route/$1 [L]
答案 1 :(得分:0)
我已经从CMS ModelAsController路线调整了这个并且应该可以使用,但是未经测试。
---
Name: myroutes
Before: '*'
After: '#rootroutes'
---
Director:
rules:
'$Path//$Action/$ID/$OtherID': 'MyOwnController'
https://github.com/silverstripe/silverstripe-cms/blob/3.1/_config%2Froutes.yml
记得要冲洗= 1。