I know this is a year and a half late, but maybe it helps someone else. I have a large multi-site project with a site for country and language. For example:
- Germany (German) - default -
/de-de/
- Germany (English) -
/en-de/
- Austria (German) -
/de-at/
- Austria (English) -
/en-at/
- etc
I was having this problem when posting to one of my controller's actions and then trying to get the currentSite
within my plugin via Craft::$app->getSites()->currentSite
.
In my JavaScript, my action looked like:
/actions/pluginHandle/controllerClass/actionMethod
Whenever I'd fetch the current site with Craft::$app->getSites()->currentSite
it would always return the default site (Germany/German), and that's because I wasn't including the first URL segment (to get Austria/English, for example):
/en-at/actions/pluginHandle/controllerClass/actionMethod
Without that, Craft was resorting to getting the default site.
Craft::$app->getSites()->currentSite->handle
work? What is it returning for you?