@Genri_Rus

Как добавить к пагинации в конце слэш?

Всем доброго времени суток!

Возникла следующая проблема в пагинации, есть следующая структура кода:

В .htaccess
RewriteRule ^([0-9]+)_(.*)/$ list.php?cat=$1
RewriteRule ^([0-9]+)_(.*)/([0-9]+)/$ list.php?cat=$1&page=$3


В jquery

$('body').on('click', '.pagination a', function(){
	var ajxData = $('#ajaxLoading');
	page = $(this).data('page');
		$.ajax({
			type: 'POST',
			url: page+'/page/',
			success: function(data) {
				var content = $(data).find('#ajaxData').html();
				$('#ajaxData').html(content);
			}
		});
	});


В .htaccess
RewriteRule ^([0-9]+)_(.*)/([0-9]+)/$ list.php?cat=$1&page=$3

Возникла интересная закономерность, если я сделаю так: url: page+'/page/', то пагинация не работает

А если вот так url: page, то работает
В .htaccess
RewriteRule ^([0-9]+)_(.*)/([0-9]+)$ list.php?cat=$1&page=$3


Переменная page отвечает за страницы в таком формате:

$page = (isset($_GET["page"]) AND intval($_GET["page"]) >= 1) ? intval($_GET["page"]) : 1;


Может кто-нибудь знает, почему пагинация работает без слеша, а со слешем в конце не работает ?
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
@dodo512
RewriteRule ^([0-9]+)_(.*)/$ list.php?cat=$1
RewriteRule ^([0-9]+)_(.*)/([0-9]+)/$ list.php?cat=$1&page=$3

(.*) означает любое количество любых символов.
^([0-9]+)_(.*)/$ совпадает с 123_text/ и 123_text/345/.

Правила проверяются последовательно их нужно поменять местами.
RewriteRule ^([0-9]+)_(.*)/([0-9]+)/$ list.php?cat=$1&page=$3
RewriteRule ^([0-9]+)_(.*)/$ list.php?cat=$1
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
RewriteRule ^([0-9]{1,})_(.+[^/])/([0-9]{1,})$ list.php\?cat\=$1&page\=$3

От нуля до девяти 1 раз и более, НО не слеш до слеша ;)
и не забываем экранировать спец символы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы