Почему у меня не работает нумерация страниц после перезаписи мода? - PullRequest
0 голосов
/ 14 ноября 2011

Перед перезаписью мой URL file.php?style=foo&page=2 работает нормально.

После перезаписи он перестает работать и просто остается на той же странице с переменной ?page в конце, как будто ее не поймают:

foo-new?page=2

После перезаписи параметр страницы перестает работать на чистом URL.

Вот как выглядят мои правила переписывания:

RewriteCond %{QUERY_STRING} ^style=([A-Za-z-]+)/?$
RewriteRule ^file\.php$ %1-new? [NS,R=301,L]
RewriteRule ^([A-Za-z-]+)-new/?$ file.php?style=$1&redirect=no [NS]

1 Ответ

0 голосов
/ 14 ноября 2011

Итак, я перевожу то, что вы хотели бы сделать, я изменяю ваши правила и пишу их.Скажите, пожалуйста, прав я или нет.

Вы хотите проверить, есть ли в строке запроса необязательный параметр "стиль".

RewriteCond %{QUERY_STRING} ^style=([A-Za-z-]+)/?$

Какой смысл^ и /? и $?Удалите их:

RewriteCond %{QUERY_STRING} style=([A-Za-z-]+)

Это понятнее и все равно должно работать для того, что вы хотите.

RewriteRule ^file\.php$ %1-new? [NS,R=301,L]

Какой смысл ??Удалите его:

RewriteRule ^file\.php$ %1-new [NS,R=301,L]

Итак, пожалуйста, попробуйте эти правила и скажите мне, если они работают, а если нет, то, пожалуйста, будьте более конкретны или приведите реальный образец URL, который вы хотели бы переписать:

RewriteCond %{QUERY_STRING} style=([A-Za-z-]+)$
RewriteRule ^file\.php$ %1-new [QSA,NS,R=301,L]
RewriteRule ^([A-Za-z-]+)-new/$ file.php?style=$1&redirect=no [NS]
...