У меня довольно большой сайт (социальная сеть), МНОГО СТРАНИЦ, в настоящее время я полностью его переписываю, чтобы сделать его лучше, чем 2 года назад. Единственное, что я решил изменить, это URL-адреса на моем сайте: они были такими: http://example.com/?p=page-identifier-name, а иногда и http:// example.com/?p=page-identifier-name&page=2&user=343433 вы поняли суть с несколькими элементами в URL-адресе, сейчас я перехожу на использование mod_rewrite, я действительно это сделал, у меня есть весь сайт перешел на его использование, но у меня есть одна огромная проблема:
Моя функция пейджинга, мне она нравится, она делает действительно хорошую пейджинг, подобную этой. 189 190 next или аналогичный и работает довольно хорошо, однако теперь, когда я переключился на использование mod-rewrite, очевидно, что мои URL-адреса теперь другие, что ломает мой пейджер, я попробовал несколько вещей, но пока безуспешно, чтобы заставить его снова работать правильно, это Вот почему я предоставил полный код на странице ниже, поэтому, если вы хотите мне помочь, вы можете легко переместить его на страницу и сами посмотреть, как он работает.
Код подкачки в настоящее время ищет все ключи и значения в URL-адресе для $_GET, а затем в основном перебирает их все, поскольку на некоторых страницах их больше, чем на других. мой сайт, затем он заново создает правильный URL-адрес с правильным номером страницы и выводит его на экран моего пейджера. Таким образом, что-то вроде www.example.com/?p=mail.inbox теперь будет www.example.com/mail/inbox, если на странице достаточно элементов. теперь оно будет отображаться как www.example.com/?p=mail.inbox&page=12 www.example.com/?mail/inbox/page/12, возможно, другая страница иметь больше, чем просто p=page для отображения и номер page=page. Некоторые страницы также имеют user_id и сортируются по разным вещам, теперь я бы не возражал против того, чтобы что-то просто добавлялось к красивому URL-адресу но такие вещи, как номер страницы, я хотел бы показать, как я хочу, чтобы он отображался, у меня все mod_rewrite и регулярные выражения работают, мне просто нужна помощь, чтобы мой код пейджера генерировал правильные ссылки. Поскольку все страницы обрабатываются через файл index.php, отображаемая страница никогда не находится глубже корневой папки, но было бы неплохо, если бы я мог заставить ее думать, что это когда у нее красивый URL-адрес. это создает впечатление, что оно находится в другой папке. example.com/mail/inbox действительно находится в индексе корневого уровня, а не в двух папках, пробовал использовать что-то вроде
Код: Выделить всё
$selfurl = $_SERVER["REQUEST_URI"].'/page/'. $pagenumber;
Код: Выделить всё
Код: Выделить всё
ОБНОВЛЕНИЕ
Мне нужно найти способ получить значение из таких URL-адресов, используя только часть без имени домена, поэтому
http://example.com/mail/inbox будет только return /mail/inbox, это должно работать с количеством каталогов и не должно возвращать значения типа ?var1=something, которые находятся в нем, поэтому он должен возвращать только те папки, которые добавлены в него.
Подвох домена в том, что эти папки не являются настоящими папками, они создаются с помощью mod_rewrite в URL-адресе.
http://example.com/ почта/входящие
http://example.com/forums/category
http://example.com/users/online
http://example.com/users/online/friends
Я пытаюсь исправить код подкачки PHP, который испорчен, теперь, когда я использую mod-rewrite, ссылки, которые он выводит на экран, неверны, потому что он перестраивает URL-адрес на основе значений $_GET, это не так. больше не работает, поскольку имена в URL-адресах не соответствуют значениям $_GET
ТАК, если URL-адрес http://example.com/ users/online или http://example.com/users/online/page/22, то мне нужно преобразовать его в переменную, например http://example.com**/ users/online/, тогда мой код подкачки может добавить свою часть страницы, если это необходимо.
Подробнее здесь: https://stackoverflow.com/questions/146 ... hanges-the
Мобильная версия