Правило перезаписи IIS 7.0 для отлова динамических папок с исключениями - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь создать правило перезаписи, которое перехватывает все www.domain.com/dynamicfolder/ (должно работать как с тире, так и без) и переписывает его в /index.php?folder= dynamicfolder , а также допускает дополнительные параметры.

Дело в том, что должны быть некоторые исключения, когда правило перезаписи не должно применяться, когда запрос фактически должен открываться / выглядеть в реальной папке,Некоторые зарезервированные папки, вы можете назвать это.Примеры папок, в которых правило следует игнорировать: «images», «includes» и «admin».

Сейчас у меня есть правило перезаписи, такого рода работа, но это только для динамических имен папок сровно 2 символа.Новое правило не должно иметь никаких ограничений, а также - чтобы быть требовательным, должна быть возможность не указывать динамическое имя папки и работать с остальной частью URL перезаписи.: -)

<rule name="Langrewrite" enabled="true">
  <match url="^([a-z]{2,2})/([_0-9a-zA-Z]+)\.html" />
  <conditions logicalGrouping="MatchAll" />
  <action type="Rewrite" url="/index.php?navItem={R:2}&amp;lang={R:1}" />
</rule>

Ответы [ 2 ]

0 голосов
/ 30 мая 2012

Это может быть именно то, что сказал Томек, но вот как это закончилось:

            <rule name="Dynamic Folders" stopProcessing="true">
                <match url="^(?!errorPages/|files/|gfx/)([a-zA-Z-]*)/?([a-zA-Z-]*)/([_0-9a-zA-Z]*)(\.html|\.htm)?" />
                <action type="Rewrite" url="/index.php?var1={R:1}&amp;var2={R:2}&amp;var3={R:3}&amp;var4={R:4}" />
            </rule> 
0 голосов
/ 28 февраля 2012

Ваш вопрос местами немного расплывчат, но постараюсь угадать ваше требование:

<rule name="DynamicFolder" stopProcessing="true">
    <match url="^(?!(?:images|includes|admin))(.+?)/" />
    <action type="Rewrite" url="/index.php?folder={R:1}" />
</rule>
...