2009-09-24 2 views
1

Я пытаюсь заставить свой старый класс подкачки работать, который полагался на переменные, доступные с $ _GET в PHP, чтобы восстановить URL-адрес для ссылок подкачки, он отлично поработал, но теперь я изменяюсь, чтобы иметь «довольно url» с mod- переписать.Как я могу получить значение в URL-адресе и изменить его для пейджинга с помощью mod-rewrite?

Так что

domain.com/?p=the-pagename-identifier & Идентификатор_пользователя = 12 & страница = 3

теперь будет

domain.com/the- pagename-identifier/12/page-3

Проблема в том, что мой PHP для моего старого пейджинга будет полагаться на переменные GET для повторной сборки URL-адрес и убедитесь, что все переменные, присутствующие в URL-адресе, остаются в новом URL-адресе, он создает новые страницы, теперь я застреваю, потому что мне нужно, чтобы он работал с «виртуальными» каталогами, которые, как мне кажется, есть в URL-адресе, domain.com/mail/inbox/page-12 действительно находится в корневом каталоге, который проходит через мой индексный файл domain.com/index.php?p=mail.inbox & страница = 12

Я потерян, потому что на некоторых страницах будет больше вещей затем другие в GET-части URL-адреса.

Поскольку все страницы загружаются через index.php на корневом уровне, я мог бы просто просто связать страницы без полного URL-адреса, но вместо чего-то вроде domain.com/mail/page-2 это будет в конечном итоге domain.com/page-2 поскольку почтовый каталог в примере не является реальным каталогом. Так можно ли получить значение в URL-адресе страницы, созданной с помощью mod-rewrite, чтобы я мог подумать, что он находится в подпапке и просто добавляет номер страницы на текущий URL-адрес страницы?

ответ

1

Это правило переписывание:

RewriteRule ^/([0-9a-zA-Z-]+)/([0-9]+)/page-([0-9]+)$ /index.php?p=$1&userid=$2&page=$3 

бы превратить это:

domain.com/the-pagename-identifier/12/page-3 

В это:

domain.com/?p=the-pagename-identifier&userid=12&page=3 

полностью прозрачна для конечного пользователя.

Таким образом, помимо , генерирующих новых URL-адресов, ваше приложение не нуждается ни в каких изменениях.

+0

Извините, если я сделал это запутанным, у меня есть все регулярное и mod-rewrite, моя проблема - это моя php-функция, которая генерирует пейджинговые ссылки, когда это необходимо, мне трудно найти правильные ссылки, вместо использования интерфейса типа page = 12 & user = 44. Я пытаюсь заставить свои текстовые ссылки перейти на правильные страницы, которые создает мой mod-rewrite, однако это превращается в настоящую проблему. Моя последняя попытка была чем-то вроде $ _SERVER ["REQUEST_URI"]. '/ Page /'. $ PageNumber; который почти работает, если я на первой странице, где номер подкачки еще не указан в URL-адресе .... – JasonDavis

+0

, но как только я перейду на страницу, тогда это создаст domain.com/mail/page2/page3 – JasonDavis

+0

@jasondavis : Я думаю, вы неправильно поняли mod-rewrite: mod-rewrite должен преобразовать симпатичные URL-адреса, которые люди нажимают на обратно в uls, которое ваше приложение может читать без посещения посетителями уродливого URL-адреса. Поэтому, помимо необязательного изменения регулярного выражения, последняя строка говорит все: * Поэтому, помимо ** создания ** новых URL-адресов, ваше приложение не должно вообще меняться.* – jeroen