Pregunta

Me gustaría agregar una ruta predeterminada a Silverstripe.Actualmente, hay algunas rutas en mi aplicación, que son /dev, /admin y /api.Me gustaría que todo el resto del tráfico que no esté en un subdirectorio (virtual) sea manejado por un controlador independiente.

He estado jugando con el sistema de configuración YAML, pero parece que no puedo entenderlo.

Básicamente quiero hacer lo siguiente.

  • /dev -> funcionalidad básica de SS, debería estar haciendo lo que hace :-)
  • /admin -> módulo cms
  • /api -> Módulo API relajante,

Pero todos los demás caminos deberían apuntar a MyOwnController.

  • /asdfsdfsd -> MiPropioControlador
  • /23 -ASDF -> MYOWNCONTROLLER ETC.

No es necesario que /asda/asd también redirija a MyOwnController.

Creé un archivo /mysite/_config/routes.yml que contiene lo siguiente:

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

Esto rompe el sitio (solo 404).¿Cómo debería configurarse esto?Podría empezar a juguetear con _config.php, pero prefiero ceñirme al estándar :-)

¿Fue útil?

Solución

¿Qué hay de hacerlo a través de .htaccess?Algo así como lo siguiente (no probado):

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]

Otros consejos

He adaptado esto desde las rutas de CMS ModelSController y debería funcionar, pero está no probado.

---
Name: myroutes
Before: '*'
After: '#rootroutes'
---
Director:
  rules:
    '$Path//$Action/$ID/$OtherID': 'MyOwnController'

https://github.com/silverstripe/silverstripe-CMS / BLOB / 3.1 / _CONFIG% 2Broutes.yml

Recuerde a FLUSH= 1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top