2011-11-30 45 views
2

我有問題傳遞獲取變量。國防部重寫獲取請求

index?p=calendar是指calendar.php位於​​和index.php是在根中。

我的網址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重寫,我認爲$是表達式的一部分。現在我知道它結束了表達。 – SupaOden

0

我認爲這個問題是因爲你有一個額外的$字符。

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