Я добавил следующее правило .htaccess:
RewriteRule ^widgets$ products.php?cat=20 [QSA]
Итак, теперь у меня есть простая ссылка под названием «widgets», которая приводит к первой категории «виджетов». Однако ссылки на вторую страницу выглядят следующим образом:
products.php?cat=20&pg=2
Я бы хотел, чтобы последующие страницы были скорее в виде: –
widgets?pg=2
Флаг QSA в вышеприведенном правиле .htaccess достигает этого, но мне нужно изменить функцию, которая генерирует эти ссылки на страницы, иначе единственный способ попасть в widgets?pg=2
, набрав ее в адресной строке браузера, как: – mywebsite.com/widgets?pg=2
.
Я думаю, что, возможно, потребуется скорректировать следующую функцию PHP, чтобы достичь желаемого результата. Можете ли вы помочь с помощью каких-либо мастеров PHP или кого-либо с соответствующими знаниями. Причина, по которой я хочу сделать это, – это то, что я хочу, чтобы Google индексировал простые страницы, а не более длинные:
function writepagebar($CurPage,$iNumPages,$sprev,$snext,$sLink,$nofirstpage){ $startPage = max(1,round(floor((double)$CurPage/10.0)*10)); $endPage = min($iNumPages,round(floor((double)$CurPage/10.0)*10)+10); if($CurPage > 1) $sStr = $sLink . '1' . '" rel="prev"><span style="font-family:Verdana;font-weight:bold">«</span></a> ' . $sLink . ($CurPage-1) . '">'.$sprev.'</a> | '; else $sStr = '<span style="font-family:Verdana;font-weight:bold">«</span> '.$sprev.' | '; for($i=$startPage;$i <= $endPage; $i++){ if($i==$CurPage) $sStr .= '<span class="currpage">' . $i . '</span> | '; else{ $sStr .= $sLink . $i . '">'; if($i==$startPage && $i > 1) $sStr .= '...'; $sStr .= $i; if($i==$endPage && $i < $iNumPages) $sStr .= '...'; $sStr .= '</a> | '; } } if($CurPage < $iNumPages) $sStr .= $sLink . ($CurPage+1) . '" rel="next">'.$snext.'</a> ' . $sLink . $iNumPages . '"><span style="font-family:Verdana;font-weight:bold">»</span></a>'; else $sStr .= ' '.$snext.' <span style="font-family:Verdana;font-weight:bold">»</span>'; if($nofirstpage) $sStr = str_replace(array('&pg=1"','?pg=1"'),'" rel="start"',$sStr); return($sStr); }
Если это помогает узнать, как функция writepagebar вписывается в incproducts.php, который сам находится внутри страницы products.php, вы можете увидеть здесь: –
http://freetexthost.com/3ubiydspzm
Отредактировано после комментариев от «nitbuntu»: –
В функции просто вместо этих строк: –
$sStr = str_replace(array('&pg=1"','?pg=1"'),'" rel="start"',$sStr); return($sStr); }
напишите следующие строки: –
$sStr = str_replace('products.php?cat=20', 'widgets', $sStr); $sStr = str_replace('&pg=', '?pg=', $sStr); $sStr = str_replace(array('&pg=1"', '?pg=1"'), '" rel="start"', $sStr); return($sStr); }
Надеюсь, поможет.
Анализируя ваш код, кажется, что $ sLink – это тот, кто содержит значение «products.php? Cat = 20», функция только добавляет значение страницы, поэтому, возможно, вам нужно изменить другую функцию.
Другими словами, ваша строка записи () только добавляет номер страницы к сгенерированной ссылке. Вы должны искать, кто вызывает writepagebar () с помощью строки «products.php? Cat = 20» и модифицировать на этом уровне.