2011-11-30 31 views
2

get変数を渡す際に問題が発生しています。getリクエストでmodを書き直す

index?p=calendarは、​​にあり、index.phpがルートにあるcalendar.phpを指します。

私のURLがlocalhost/researchportal/calendar/11/2011

カレンダーでは、2つのGET変数、月と年を持っています。すなわち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

私はmod-rewriteの新種です。私は$が表現の一部であると思っていました。今私はそれが表現を終了することを知っている。 – SupaOden

0

あなたは追加の$文字があるので問題だと思います。

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