Проблема с правилом перезаписи htaccess 'номера страниц' - PullRequest
1 голос
/ 16 июля 2010

Я добавил файл .htaccess в свою корневую папку, чтобы переписать динамические URL-адреса в статические. Кажется, это было сделано успешно, но у меня проблемы с номерами страниц.

Например, если вы посещаете статическую страницу /widgets, первая страница продуктов в порядке .... но последующие страницы отображаются как /products.php?cat=27&pg=2 и т. Д. Я хочу, чтобы последующие страницы в виде /widgets-pg2 или /widgets?pg=2.

Ниже мое правило переписывания, которое я использовал для начальной страницы категории: -

RewriteRule ^widgets$ products.php?cat=27

Если кто-нибудь из вас может помочь с этим, будет очень признателен.

Ответы [ 4 ]

2 голосов
/ 16 июля 2010

Вы ожидаете, что кошка тоже изменится?Вы также должны учесть это в своем URL:

, например, www.site.com/widgets/27/2 можно переписать так:

RewriteRule ^widgets/([0-9]+)/([0-9]+)$ products.php?cat=$1&pg=$2

Если виджеты всегда будутбудь котом 27, тогда вы можете изменить его на:

RewriteRule ^widgets$ products.php?cat=27 [QSA] 

, что является строкой запроса append

1 голос
/ 16 июля 2010

Попробуйте

RewriteRule ^widgets-pg(.+)$ products.php?cat=27&pg=$1

После этого иди сюда :)

0 голосов
/ 17 июля 2010

Я попробовал следующее, но это привело к ошибке «404 Not Found» при переходе к / widgets: -

RewriteRule ^widgets-pg(.+)$ products.php?cat=27&pg=$1

И я попробовал следующее: -

RewriteRule ^widgets$ products.php?cat=27 [QSA]

Это сработало правильно, но чтобы перейти на вторую страницу виджетов, мне нужно набрать в браузере: -

/widgets?pg=2

Но фактическая ссылка «страница 2» все еще ведет к: -

products.php?cat=27&pg=2

Так, кроме правила перезаписи .... может быть, мне нужно отдельное правило перенаправления? Или, возможно, нужно изменить номер страницы ссылки. Но так как они генерируются динамически, я не уверен, как это сделать.

Ниже приведен код PHP для страницы: - http://freetexthost.com/3ubiydspzm

0 голосов
/ 16 июля 2010

Чтобы разрешить строку запроса после перезаписанного URL-адреса, используйте флаг [QSA]:

RewriteRule ^widgets$ products.php?cat=27 [QSA]

Ссылка будет:

http://example.org/widgets?pg=167&perpage=100&tralala=Hi!
...