2011-11-30 5 views
2

У меня возникли проблемы с передачей переменных.mod rewrite with get request

index?p=calendar относится к calendar.php, расположенному в pages/calendar.php и index.php находится в корне.

мой URL является localhost/researchportal/calendar/11/2011

Календарь имеет 2 получить переменные, месяц и год. i.e 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] 

ответ

1

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

Почему вы прекращаете ($) дважды?

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

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

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

+0

Я как бы новичок в переделке мод, я думал, что $ является частью выражения. Теперь я знаю, что это заканчивает выражение. – SupaOden

0

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

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