You cannot remove it entirely because the layered navigation filters need a request variable to determine what to filter. But you can change "cat" to something else.
It is defined in Mage_Catalog_Model_Layer_Filter_Category
:
public function __construct()
{
parent::__construct();
$this->_requestVar = 'cat';
}
There is a setter setRequestVar()
but unfortunately there is no way to call it between the filter being instantiated and being applied, without rewriting either the filter model or the filter block.
I would prefer to rewrite the block because the URL parameter is related to the user interface:
class Your_Module_Block_Catalog_Layer_Filter_Category
extends Mage_Catalog_Block_Layer_Filter_Category
{
protected function _prepareFilter()
{
$this->_filter->setRequestVar('dog');
return parent::_prepareFilter();
}
}
Since you are asking for a HACK, you could change one of the classes directly instead, but I won't recommend hacking the core. And no, copying the file to app/code/local is not better.
Now the URLs are like this: http://example.com/redwine/dog/france
. That is, the links in the filter navigation ar built this way, you could not accomplish this with .htaccess
rewrite rules.