It was necessary to implement on the page with the search filter block with links to the pages of the issue. It did, the question arose about the CNC: it is necessary that all links leading to the issuance of the filter had the form of CNC, ie instead

drupal-test / catalog / kabel? razdel_cable% 5B% 5D = 2

in the address bar the address was displayed, in this case, this:

drupal-test / catalog / kabel / razdel / 2

Some wise guy hid the filter module itself somewhere inside the core, so after searching for it for a while, I decided to quit the case. Instead, I taught the drupal to understand the desired format of links, using the hook_url_inbound_alter hook hook_url_inbound_alter this:

 function semantic_search_url_inbound_alter(&$path, $original_path, $path_language) { $parts = explode('/', $original_path); if($parts[1] == 'kabel' && !empty($parts[2])) { if($parts[2] == 'razdel') { $_GET['razdel_cable[]'] = $parts[3]; $path = 'catalog/kabel'; } elseif($parts[2] == 'type') { $_GET['type_of_cables[]'] = $parts[3]; $path = 'catalog/kabel'; } } } 

The fact is that by clicking on the link of the desired type, the drupal redirects to the filter page with the "not CNC" address. Is there any hook, or can there be another way to change the display of links in the filter? Or somehow, you can create the alias you need to create programmatically (if it does not already exist), you do not want to use the RewriteRule, since Krivoruky site and a lot of links in the filter, and the filters on some pages use a different kind of horseradish.

Drupal version - 7.22

    1 answer 1

    Pay attention to the module https://www.drupal.org/project/query_parameters_to_url - full CNC and SEO provides.

    And update the core, it is full of holes.