2010-01-21 146 views
1

我使用IIRF 2.1的重寫規則IIRF重寫規則的IIS7

我寫的規則是這樣,但它不工作

RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/?$ $1.php?iid=$2 [QSA,L] 

如果我使用follwoing網址

http://localhost/prod/22/new-item

我需要的實際網址是 http://localhost/prod.php?iid=22

yes working version is

RewriteRule/^(prod | pag | staf)/([A-Za-z0-9 - ] +)/?$ /$1.php?iid=$2 [QSA,L] 但這裏的問題是所有的風格和包含文件不包括在內。

感謝

+0

您是否有其他規則可行?試圖縮小與規則或IIRF配置有關的範圍。 – 2010-01-21 19:56:45

+0

對於投票結束的人來說,這是編程相關的,因爲它確實是一個正則表達式問題。 – 2010-01-21 20:01:35

+0

我認爲這可能更適合於serverfault。 – Cheeso 2010-01-21 20:09:58

回答

1

只寫URL這樣

重寫規則^ /(PROD | PAG | STAF)/(A-ZA-Z0-9 - ] +)/ $ /$1.php?iid=$2 [QSA? ,L]

並將/前樣式表和其他包括

如果舊的樣式表是包括這樣

style/style.css 

chnage它到

/style/style.css 

相同的圖像和鏈接。 希望這會工作正常。

0

如果你的網址將始終包含數字,則塞,此正則表達式將得到各部分:

^(prod|pag|staf)/([0-9]+)/([A-Za-z0-9-]+)/? 
1

你的正則表達式不允許新的項目遵循最後的斜線。在結束圖案說

RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/?$ $1.php?iid=$2 [QSA,L]

在/?$序列......一個斜槓(也許),然後將字符串的結尾。但是,您的網址並非以斜線結尾。它以斜線和文本「新項目」結尾。

捕獲會是這樣的一個正則表達式:

RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/? $1.php?iid=$2 [QSA,L]

...它說,你不在乎可選斜線後會發生什麼,因爲你正在使用QSA ,那麼原始URL中的任何查詢字符串都會附加到傳出網址。

但是,這基本上會丟棄傳入URL請求的「新項目」部分,我不確定你想要做什麼。