I have added a sonata admin
to my website.
In local, i can access to the path /admin
but not when I push it on my prod environnement. I get a 404 when i try to access it :
Not Found The requested URL /admin was not found on this server.
I have removed my cache in var/cache/prod
In case heres the content of my sonata_admin.yaml
which is used :
_sonata_admin:
resource: .
type: sonata_admin
prefix: /admin
admin_area:
resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml"
prefix: /admin
sonata_user_admin_security:
resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
prefix: /admin
sonata_user_admin_resetting:
resource: '@SonataUserBundle/Resources/config/routing/admin_resetting.xml'
prefix: /admin/resetting
Do I have to configure something, to access these paths on my server ? Or does this has anything to do with the .htaccess
file.
Any clue of what might be causing this problem ?
Thank you in advance for your help !
UPDATE : Heres what I have when I do debug:router
command on my localhost (can't do it in production)
D:\website>php bin/console debug:router
------------------------------------------ ---------- -------- ------ ----------------------------------------------------
Name Method Scheme Host Path
------------------------------------------ ---------- -------- ------ ----------------------------------------------------
homepage ANY ANY ANY /
_twig_error_test ANY ANY ANY /_error/{code}.{_format}
_wdt ANY ANY ANY /_wdt/{token}
_profiler_home ANY ANY ANY /_profiler/
_profiler_search ANY ANY ANY /_profiler/search
_profiler_search_bar ANY ANY ANY /_profiler/search_bar
_profiler_phpinfo ANY ANY ANY /_profiler/phpinfo
_profiler_search_results ANY ANY ANY /_profiler/{token}/search/results
_profiler_open_file ANY ANY ANY /_profiler/open
_profiler ANY ANY ANY /_profiler/{token}
_profiler_router ANY ANY ANY /_profiler/{token}/router
_profiler_exception ANY ANY ANY /_profiler/{token}/exception
_profiler_exception_css ANY ANY ANY /_profiler/{token}/exception.css
webhook_index ANY ANY ANY /mailchimp/webhook/endpoint
admin_app_event_list ANY ANY ANY /admin/app/event/list
admin_app_event_create ANY ANY ANY /admin/app/event/create
admin_app_event_batch ANY ANY ANY /admin/app/event/batch
admin_app_event_edit ANY ANY ANY /admin/app/event/{id}/edit
admin_app_event_delete ANY ANY ANY /admin/app/event/{id}/delete
admin_app_event_show ANY ANY ANY /admin/app/event/{id}/show
admin_app_event_export ANY ANY ANY /admin/app/event/export
admin_sonata_user_user_list ANY ANY ANY /admin/sonata/user/user/list
admin_sonata_user_user_create ANY ANY ANY /admin/sonata/user/user/create
admin_sonata_user_user_batch ANY ANY ANY /admin/sonata/user/user/batch
admin_sonata_user_user_edit ANY ANY ANY /admin/sonata/user/user/{id}/edit
admin_sonata_user_user_delete ANY ANY ANY /admin/sonata/user/user/{id}/delete
admin_sonata_user_user_show ANY ANY ANY /admin/sonata/user/user/{id}/show
admin_sonata_user_user_export ANY ANY ANY /admin/sonata/user/user/export
admin_sonata_user_group_list ANY ANY ANY /admin/sonata/user/group/list
admin_sonata_user_group_create ANY ANY ANY /admin/sonata/user/group/create
admin_sonata_user_group_batch ANY ANY ANY /admin/sonata/user/group/batch
admin_sonata_user_group_edit ANY ANY ANY /admin/sonata/user/group/{id}/edit
admin_sonata_user_group_delete ANY ANY ANY /admin/sonata/user/group/{id}/delete
admin_sonata_user_group_show ANY ANY ANY /admin/sonata/user/group/{id}/show
admin_sonata_user_group_export ANY ANY ANY /admin/sonata/user/group/export
sonata_admin_redirect ANY ANY ANY /admin/
sonata_admin_dashboard ANY ANY ANY /admin/dashboard
sonata_admin_retrieve_form_element ANY ANY ANY /admin/core/get-form-field-element
sonata_admin_append_form_element ANY ANY ANY /admin/core/append-form-field-element
sonata_admin_short_object_information ANY ANY ANY /admin/core/get-short-object-description.{_format}
sonata_admin_set_object_field_value ANY ANY ANY /admin/core/set-object-field-value
sonata_admin_search ANY ANY ANY /admin/search
sonata_admin_retrieve_autocomplete_items ANY ANY ANY /admin/core/get-autocomplete-items
sonata_user_admin_security_login ANY ANY ANY /admin/login
sonata_user_admin_security_check POST ANY ANY /admin/login_check
sonata_user_admin_security_logout ANY ANY ANY /admin/logout
sonata_user_admin_resetting_request GET ANY ANY /admin/resetting/request
sonata_user_admin_resetting_send_email POST ANY ANY /admin/resetting/send-email
sonata_user_admin_resetting_check_email GET ANY ANY /admin/resetting/check-email
sonata_user_admin_resetting_reset GET|POST ANY ANY /admin/resetting/reset/{token}
------------------------------------------ ---------- -------- ------ ----------------------------------------------------
Found the solution :
In Symfony 4.x, we need to specify a specific rewrite rule.
I followed the Symfony 4 documentation. I just needed to do this command to fix it :
composer require symfony/apache-pack
You can also just add this code in a .htaccess
file in the public
sub-directory of your Symfony project :
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /index.php/
</IfModule>
</IfModule>
And voilà ! /admin
and all subpaths are now accessible on the server.