Skip to content

Commit

Permalink
feat(Encoded slash): Replace the encoded slash characters by a slash …
Browse files Browse the repository at this point in the history
…to avoid breaking Apache with it + avoid double encoding with filters
  • Loading branch information
etienne-monsieurbiz committed Jul 3, 2024
1 parent cbb4045 commit 354ecfb
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
3 changes: 2 additions & 1 deletion src/Controller/SearchController.php
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,11 @@ public function postAction(Request $request): RedirectResponse
$query = (array) $request->request->all()['monsieurbiz_searchplugin_search'] ?? [];
$query = $query['query'] ?? '';

// With Apache a URL with a encoded slash (%2F) is provoking a 404 error on the server level
return $this->redirect(
$this->generateUrl(
'monsieurbiz_search_search',
['query' => urlencode($query)]
['query' => str_replace('%2F', '/', urlencode($query))]
)
);
}
Expand Down
4 changes: 2 additions & 2 deletions src/Resources/views/Search/_filters.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
{{ 'monsieurbiz_searchplugin.filters.no_filter'|trans }}
</div>
{% else %}
{% set encodedQuery = app.request.attributes.get('_route_params').query|default('')|url_encode %}
{% set path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge(app.request.query.all)|merge({query: encodedQuery})) %}
{% set searchQuery = app.request.attributes.get('_route_params').query|default('') %}
{% set path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge(app.request.query.all)|merge({query: searchQuery})) %}
<form name="filters-form" method="get" action="{{ path }}">

{% for filter in result.filters %}
Expand Down
6 changes: 3 additions & 3 deletions src/Resources/views/Search/_tabs.html.twig
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{% if documentableRegistries|length > 1%}
<div class="ui pointing secondary menu">
{% set encodedQuery = app.request.attributes.get('_route_params').query|default('')|url_encode %}
{% set searchQuery = app.request.attributes.get('_route_params').query|default('') %}
{% set firstDocumentable = documentableRegistries|first %}
{% for documentableRegistry in documentableRegistries %}
{% if documentableRegistry.indexCode == firstDocumentable.indexCode %}
{% set path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge({query: encodedQuery})) %}
{% set path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge({query: searchQuery})) %}
{% else %}
{% set path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge({query: encodedQuery})|merge({document_type: documentableRegistry.indexCode})) %}
{% set path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge({query: searchQuery})|merge({document_type: documentableRegistry.indexCode})) %}
{% endif %}
{% set isActive = documentableRegistry.indexCode == documentable.indexCode %}
<a
Expand Down

0 comments on commit 354ecfb

Please sign in to comment.