мод переписать с получением запросов - PullRequest
2 голосов
/ 30 ноября 2011

У меня проблема с передачей переменных get.

index?p=calendar относится к calendar.php в pages/calendar.php, а index.php в корне.

мой URL-адрес localhost/researchportal/calendar/11/2011

В календаре 2 переменные получения: месяц и год.т.е. calendar.php?month=11&year=11

вот мое правило, но оно не работает.

RewriteRule ^calendar/([0-9]+)$/([0-9]+)$    index.php?p=calendar&month=$1&year=$2 [L]

Я также пытался

RewriteRule ^calendar/([0-9]+)$/([0-9]+)$    pages/calendar.php?month=$1&year=$2 [L]

.htaccess файл

RewriteEngine On
RewriteBase /researchportal/
RewriteRule ^/calendar/([0-9]+)$ index.php?p=calendar [QSA,L]

RewriteRule ^users/login /researchportal/pages/login.php [L]
RewriteRule ^users/logout /researchportal/pages/logout.php [L]
RewriteRule ^users/register logout.php [L]

RewriteRule ^profile/([0-9]+)$ index.php?p=profile&usr_id=$1 [QSA,L]
RewriteRule ^profile/edit/([0-9]+)$ index.php?p=edit&usr_id=$1 [L]
RewriteRule ^([A-Za-z0-9-_]+)$ index.php?p=$1 [L]

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

^calendar/([0-9]+)$/([0-9]+)$

Почему вы заканчиваете ($) дважды?

^ начинается и выражение и $ заканчивает его. Нет никаких причин, чтобы не иметь ни в середине выражения.

RewriteRule ^calendar/([0-9]+)/([0-9]+)$    pages/calendar.php?month=$1&year=$2 [L]

Должно работать лучше. Если по какой-либо причине вам также понадобятся переменные запроса в URL, вы можете заменить [L] на [L,QSA] aswell.

0 голосов
/ 30 ноября 2011

Думаю, проблема в том, что у вас есть дополнительный символ $.

RewriteRule ^calendar/([0-9]+) *$* /([0-9]+)$    index.php?p=calendar&month=$1&year=$2 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...