2012-02-06 3 views
3

Я нашел этот код, чтобы добавить www к URL-адресам без него, используя URL-адрес перезаписи.Добавление www в url с перепиской url

<rewrite> 
    <rules> 
     <clear /> 
     <rule name="WWW Rewrite" enabled="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$" /> 
      </conditions> 
      <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" /> 
     </rule> 
    </rules> 
</rewrite> 

Но это, кажется, не работает в URL есть «-» в нем, например, scotts-cleaners.com.

Это возвращает www.www.scotts-cleaners.com.

Любые идеи?

ответ

0
pattern="^www\.([.a-zA-Z0-9-]+)$" 

видимо, дефис не нужно бежать в регулярное выражение ^^

+0

Вы не избежите дефиса в выражении скобки (диапазон). Вместо этого используйте ''^www \. ([. A-zA-Z0-9 -] +) $ ". – ghoti

+0

@ghoti, вы правы, конечно. – maddrag0n

1

Просто добавьте - к шаблону:

<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9-]+)$" /> 

С дефис и буквенно-цифровые представляют собой только допустимые символы в имени домена, ваш шаблон теперь должен работать для всех URL-адресов.

+0

К сожалению, это все еще не работает. Это, безусловно, кажется правильным для меня. – Bth

Смежные вопросы