Может кто-нибудь помочь с правилом перезаписи для IIS? - PullRequest
2 голосов
/ 20 января 2011

Я использую Helicon ISAPI_Rewrite и ввел следующее правило перезаписи:

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

Однако у меня мало знаний о регулярных выражениях, и это правило почти работает.Однако, вот моя ситуация:

Я хочу, чтобы мои посетители могли вводить следующее в URL:

http://www.somedomain.com/UserName

, и когда они это делают, они получаютперенаправлено на:

http://www.somedomain.com/MemberPages/OrderSupplies.aspx

Приведенное выше правило работает, , но я не хочу, чтобы правило запускалось, если UserName является файлом.

Например, правило НЕ должно срабатывать, если введено следующее:

http://www.somedomain.com/Default.aspx  
http://www.somedomain.com/login.aspx  
http://www.somedomain.com/otherpage.aspx  

Приведенное выше правило удаляет '.', но я хочу игнорировать любые имена файлов или любой текст с'..

1 Ответ

0 голосов
/ 23 января 2011

Я придумал следующее:

RewriteEngine On
RewriteRule ^([^/?.]+)$ MemberPages/OrderSupplies.aspx?Name=$1 [NC,L]

Я не уверен, можете ли вы указать предшествующее / после имени хоста или нет в mod_rewrite. Кроме того, вам не нужно избегать? в строке замены из того, что я знаю. Но в любом случае, если это не сработает, попробуйте так, как вы это сделали:

RewriteEngine On
RewriteRule ^([^/?.]+)$ /MemberPages/OrderSupplies.aspx\?Name=$1 [NC,L]

Итак, общий шаблон ^ ([^ / ?.] +) $ утверждает, что от начала до конца не может быть никакого? или же . или / символы.

...