Вопрос

Я хотел бы добавить маршрут по умолчанию в SilverStripe. В настоящее время в моем приложении есть несколько маршрутов, являются / dev, / admin и / API. Я хотел бы, чтобы все остальные трафики, которые не в (виртуальном) подкаталоге, который будет обрабатываться отдельным контроллером.

Я играю с системой конфигурации YAML, но я не могу обернуть голову вокруг него.

Так что в основном я хочу сделать следующее

    .
  • / dev -> Основные функции SS, должны делать то, что он делает: -)
  • / admin -> модуль CMS
  • / API -> Модуль восстановления API,

Но каждый другой путь должен указывать на MyownController.

    .
  • / asdfsdfsd -> myowncontroller
  • / 23-asdf -> myowncontroller и т. др.

Не нужно, чтобы / asda / asd также перенаправляют в myowncontroller.

Я сделал файл /mysite/_config/routes.yml, содержащий следующее:

---
Name: myroutes
After: 'framework/routes#coreroutes'
---
Director:
  rules:
    '$Path': 'MyOwnController'
.

Это ломает сайт (только 404). Как это должно быть настроено? Я мог бы начать возобновить в _config.php, но я бы предпочел придерживаться стандарта :-)

Это было полезно?

Решение

Как насчет этого через .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]
.

Другие советы

Я адаптировал это из маршрутов CMS Modelscontroller и должен работать, но не содержится.

---
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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top