Мод переписывает общее правило для ВСЕЙ разбивки на страницы?

#.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