* Use generic markup:
\newcommand*{\mainentry}[1]{\textbf{\hyperpage{#1}}}
\index{foo|mainentry}
* With makeindex I do not see a simple possiblity.
* Avoid page ranges:
* No \index{foo|(}...\index{foo|)},
* makeindex -r
Or, _if I knew_ how to split num1--num2 in two different number
arguments, I could do something like this:
\index{foo|(hyperrange}
\index{foo|)}
and the define this:
\newcommand{\hyperrange}[1]{\firstnum{#1}--\secondnum{#1}}