SupaOden
SupaOden

Reputation: 742

mod rewrite with get requests

I am having issue passing get variables.

index?p=calendar refers to calendar.php located in pages/calendar.php and index.php is in root.

my URL is localhost/researchportal/calendar/11/2011

Calendar has 2 get variables, month and year. i.e calendar.php?month=11&year=11

here is my rule, but its not working.

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

I also tried

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

.htaccess file

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]

Upvotes: 2

Views: 250

Answers (2)

Manjula
Manjula

Reputation: 5091

I think the problem is because you have an additional $ character.

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

Upvotes: 0

Robin Castlin
Robin Castlin

Reputation: 10996

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

Why are you ending ( $ ) it twice?

^ starts and expression and $ ends it. There is no reason to have neither in the middle of an expression.

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

Should work better. If you for some reason would also want some query variables in the url, you can replace [L] with [L,QSA] aswell.

Upvotes: 1

Related Questions