"Таким образом," pg "будет (1 | $ 2) (pg = 1 или pg = номер страницы)"
К сожалению, это не работает так. Лучшее, что вы можете сделать, это использовать это правило:
RewriteRule ^tag/([^/\.]+)/?(\d+)?/?$ index.php?p=tag&tag=$1&pg=$2 [QSA,NC,L]
Если запрашивается mysite.ext/tag/php/
, он переписывается в index.php?p=tag&tag=php&pg=
. Параметр pg
пуст (как вы можете видеть). Что вам нужно сделать - это добавить дополнительный бит кода в index.php
, чтобы проверить, является ли pg
пустым, затем присвоить значение 1
:
$page_number = isset($_GET['pg']) ? $_GET['pg'] : '';
if (empty($page_number)) {
$page_number = 1;
}
else {
// convert it to INT type
$page_number = (int)$page_number;
}
Приведенный выше код может выглядеть слишком много (слишком безопасный подход), но это то, что я предпочитаю делать (когда безопасность сайтов электронной коммерции является приоритетом). ( Я пропустил полную проверку, чтобы сделать ее короче )
Но вы можете сделать его намного меньше, если хотите (вам все равно придется проверять входные данные):
$page_number = isset($_GET['pg']) ? $_GET['pg'] : '';
if (empty($page_number)) $page_number = 1;