Почему при отправке поискового запроса в URL не указывается каталог "search"?

Здравствуйте! 

Я настраиваю стандартный поиск на своем сайте и столкнулся с проблемой, которую не могу решить. Когда я отправляю поисковый запрос через форму, прописанную в "header.php", происходят неожиданные вещи. В коде используется следующий фрагмент: 

<pre><code class="php">$APPLICATION-&gt;IncludeComponent("bitrix:search.form",".default",Array("USE_SUGGEST" =&gt; "N","PAGE" =&gt; "#SITE_DIR#search/index.php"));</code></pre>

После отправки запроса ожидалось, что я перейду на страницу результатов поиска, выглядящую так: "<a href="http://sitename/search/?q=%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%BE%D0%B5_%D1%81%D0%BB%D0%BE%D0%B2%D0%BE" rel="nofollow">http://sitename/search/?q=поисковое_слово</a>", но вместо этого происходит перенаправление на "<a href="http://sitename/?q=%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%BE%D0%B5_%D1%81%D0%BB%D0%BE%D0%B2%D0%BE" rel="nofollow">http://sitename/?q=поисковое_слово</a>", из-за чего каталог "search" не добавляется в URL.

При этом каталог "search" уже создан в корне сайта, и в нем находится "index.php" с кодом компонента поиска. Если я вручную добавляю "/search/" в URL, страница результатов открывается корректно. В "urlrewrite.php" я не нашел правил, касающихся "/search/", хотя пробовал добавлять их, но это не помогло.

Я уже не знаю, где еще искать причину возникшей проблемы.
  • 6 декабря 2024 г. 10:13
Ответы на вопрос 2
Здравствуйте!

Судя по вашему описанию, проблема заключается в том, что форма поиска не корректно настраивает URL для перенаправления на страницу результатов поиска. Давайте рассмотрим, что можно сделать для решения данной проблемы:

1. **Параметр `PAGE`**: Убедитесь, что значение параметра `PAGE` в компоненте `search.form` корректно указывает на страницу поиска. Ваш текущий код выглядит нормальным, но возможно, есть проблема с обработкой данного параметра. Пробуйте установить полный URL напрямую:
   ```php
   $APPLICATION->IncludeComponent("bitrix:search.form", ".default", Array(
       "USE_SUGGEST" => "N",
       "PAGE" => "/search/index.php"
   ));
   ```

2. **Проверка настройки формы**: Убедитесь, что в файле формы поиска не установлено значение `action`, которое могло бы перезаписывать значение. Если у вас есть JavaScript, который может манипулировать отправкой формы, убедитесь, что он не меняет логику.

3. **Настройка URL**: Возможно, у вас не корректно настроены правила URL в системе управления сайтами Битрикс. К примеру, вы можете проверить настройки "Настройки" > "Системные настройки" > "ЧПУ" (человеко-понятные URL):

   - Пример(ы) настроек для редиректов:
     ```php
     array(
         "CONDITION" => "#^/search/#",
         "RULE" => "",
         "ID" => "bitrix:search.index",
         "PATH" => "/search/index.php"
     )
     ```

4. **Системный кэш**: Иногда кэш может вызывать проблемы с отображением URL. Очищайте кэш системы через админку Битрикс и проверьте, решит ли это вашу проблему.

5. **Проверка других модулей**: Если у вас установлены сторонние модули, они могут конфликтовать с компонентом, вызывая неправильные перенаправления. Попробуйте отключить их временно и проверьте, сохраняется ли проблема.

6. **Логи и отладка**: Проверьте логи вашего сервера и лог ошибок Битрикс. Вполне может быть, что ошибка видна там.

Если все вышеперечисленные методы не помогут, попробуйте также обратиться на форумы поддержки Битрикс или в документацию для более детального рассмотрения ваших настроек.
исправьте action в шаблоне формы поиска и будет как нужно 
<form action="<?=$arResult["FORM_ACTION"]?>">
при пустом action форма посылается на текущую страницу
Похожие вопросы