2011-01-13 43 views
0

我使用以下重寫URL:重寫URL,正則表達式的幫助

RewriteRule /([^/?.]+) /somedir/somefile.aspx\?Name=$1 [NC,L] 

這對我使用的偉大工程,但我需要把它限制在純文本的行爲不包含文件名...例如,如果我使用網址www.somedomain.com/SomeName它可以正常工作,但它也會觸發,如果我使用www.somedomain.com/TestPage.aspx

所以我不確定是否需要額外的Rewtire規則,或者如果當前的可以修改爲不允許帶有擴展名的任何文本,例如。

任何與此正則表達式的幫助將不勝感激。

回答

1

嘗試重寫規則之前添加此:

RewriteCond %{REQUEST_FILENAME} !-f 

此條件檢查,如果請求的文件是否存在,如果它不返回true(因爲它是用否定!)。

,如果你不需要也火了規則的目錄,然後也加入這一行:

RewriteCond %{REQUEST_FILENAME} !-d 
+0

這似乎沒有工作,我需要的是這樣的:如果這是進入:WWW。 somedomain.com/SomeUser 其結果將是:www.somedomain.com/MemberPages/OrderSupplies.aspx?Name=SomeUser 如果輸入:www.somedomain.com/Default.aspx 結果將be: www.somedomain.com/Default的.aspx – LilMoke 2011-01-14 14:11:35