2015-10-15 2 views
0

У меня есть сервер IIS со многими доменами с несколькими доменами. У меня есть правила перезаписи для SEO-ссылок.URL-адрес IIS Перепишите, чтобы не передать .htm в rewrite

Пример:

www.something.com/here-is-the-page

текущие обращенные к

www.something.com/index.htm?pagetitle=here -is-the-page

Проблема в том, что одному домену требуется это правило, позволяющее URL-адресам читать с .htm в конце.

Пример:

www.something.com/here-is-the-page.htm

нужно преобразовать в

www.something.com/index.htm? PAGETITLE = здесь-это-The-страница

(примечание, просто удалили .htm, хотя я все еще хочу, чтобы .htm, чтобы отобразить в адресной строке) ...

ответ

0

Спасибо всем за помощь ... [сарказм] ниже - это решение. Ключ здесь - MatchAll.

Посмотрите на URL

Проверьте, чтобы увидеть, если это для www.something.com

Проверьте, чтобы убедиться, что это не реальный файл с filename.htm

Проверить есть no directory с этим именем

Если файл sitemap.htm (который существует, а затем не обрабатывается), это должно быть уловлено предыдущей проверкой на файл, а просто добавлено для переполнения. Поскольку это переписывание, а не перенаправление, .htm будет отображаться на панели навигации.

<rule name="remove the htm" stopProcessing="true"> 
    <match url="([_0-9a-z-]+)\.htm$" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
    <add input="{HTTP_HOST}" pattern="^(www.something.com)$" /> 
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    <add input="{REQUEST_FILENAME}" pattern="sitemap\.htm$" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="/index.cfm?pagetitle={R:1}" /> 
</rule>