2010-12-06 4 views
3

Я всегда использовал apache, поэтому я совершенно новичок в IIS. Как мне это сделать в IIS?Каков эквивалент IIS этих правил перезаписи?

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 

У меня есть менеджер IIS открытым, и я смотрю на «URL Rewrite» и просто нажал «Добавить правило (ы)». Я предполагаю, что это то место, где я хочу быть, но я не знаю, куда идти отсюда.


Для тех из вас, кто знает IIS, но не mod_rewrite Apache, он просто проверяет, если запрос не является каталогом, ни файл, и если да, то принимает URL запроса и передает его в index.php как GET param, чтобы он мог обрабатываться в коде с помощью маршрутизатора.

ответ

10

Вы можете импортировать их автоматически, просто перейдите на требуемый сайт или приложение и дважды щелкните значок «Переписать URL», а затем используйте ссылку «Импорт правил ...» в списке задач. В этом пользовательском интерфейсе просто скопируйте/вставьте вышеприведенные правила и нажмите «ОК», он импортирует их в ваш web.config.

Эквивалент в вашем web.config будет (конечно, в конфигурации/system.webServer ... и т.д.):

<rewrite> 
    <rules> 
    <rule name="Imported Rule 1" stopProcessing="true"> 
     <match url="^(.*)$" ignoreCase="false" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" /> 
    </rule> 
    </rules> 
</rewrite> 

Для получения дополнительной информации о том, как их импортировать: http://learn.iis.net/page.aspx/470/importing-apache-modrewrite-rules/

+1

WOAH. .это круто ! – mpen 2010-12-10 01:44:06

1

Линии htaccess, которые вы разместили, очень похожи на то, что используется Zend Framework. Они имеют руководство по перезаписи, которое имеет a section on IIS 7.0.

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