Story #89958
closedExtbase Action Links not working when routing active
0%
Description
Hi,
I set up a new project (nginx, php 7.3, mysql) using docker containers, went through the installation wizard and now - trying to build the website - a basic extbase usecase is not working because the plugin arguments are not mapped from the query string!
When installing the news extension the same happens. I can render a list+detail plugin and when i click the news record, the correctly generated link (/path/to/site?tx_news_pi1[action]=detail&tx_news_pi1[controller]=News&tx_news_pi1[news]=1&cHash=123...) results in extbase rendering the list again (so the query is ignored).
What do i have to configure to make extbase respect the unmapped query params?
I mean.... Where are my query params gone? Why are they "lost" when the controller tries to map them (AbstractController::mapRequestArgumentsToControllerArguments)?
IMHO this should work like: As long as no routing is configured it SHOULD WORK with query params, so
/path/to/page?tx_ext_pi[foo]=bar&cHash=123...
should be a valid URI dispatching the extbase plugin with the parameter [foo]=bar
The actual behaviour is simply broken - or i missed some important configuration part (that is not very obvious!)
So, please help me to find my mistake or - in case the described behavior is intended - create an issue because this must be a bad a joke.
See also:
https://stackoverflow.com/questions/59353353/typo3-9-lts-routing-breaks-extbase-action-links
Updated by Philipp Wrann almost 5 years ago
- Tracker changed from Bug to Story
- Category changed from Extbase to Site Handling, Site Sets & Routing
Okay, after hours of debugging i found the error in the nginx config.
I dont know if this is an error on my side or if some optimization could be done in typo3, anyway the issue was:
Not working nginx directive:
location / {
try_files $uri $uri/ /index.php$query_string;
}
Had to change it to
location / {
try_files $uri $uri/ /index.html /index.php$is_args$args;
}