#.htaccess #mod-rewrite #pagination
#.htaccess .htaccess #мод-переписать #разбивка на страницы #.htaccess #мод перезаписывает
Вопрос:
Можно ли сделать что-то подобное? Независимо от того, под какой страницей или каталогом page=$1
отображается, он будет перезаписан / перенаправлен на /$1
Например:
file.php/1 будет file.php?страница=1
dir/file/2 будет dir / file?страница = 2
dir/file.php?name=что-то /3 было бы dir/file.php?name=что-тоamp;page=3
Вот что у меня есть на данный момент:
RewriteCond %{THE_REQUEST} ^[A-Z] s. .phpsHTTP/.
RewriteCond %{QUERY_STRING} ^amp;page=([0-9-] )/?$
RewriteRule ^(. ).php$ $1/%2 [R=301,L]
RewriteRule ^(.*)$ $1.php/$2
Ответ №1:
Чтобы покрыть пути URI, которые заканчиваются на /123, мы можем использовать это правило:
RewriteRule ^(. )/([0-9] )$ /$1?page=$2 [QSA,L,R]
Итак:
- file.php/1 будет file.php?страница=1
- dir/file/2 будет dir / file?страница = 2
- Обратите внимание, что это также будет касаться: dir/file/3?foo=bar будет dir/ file?page=3amp;foo=bar
Чтобы охватить /123, который добавляется в конце фактической строки запроса, мы можем использовать это правило:
RewriteCond %{QUERY_STRING} (.*)/([0-9] )$
RewriteRule ^(. )$ /$1?mp;page=%2 [L]
Итак:
- dir/file.php?name=что-то /3 было бы dir/file.php?name=что-тоamp;page=3