Что такое IIS-эквивалент этих правил перезаписи? - PullRequest
3 голосов
/ 06 декабря 2010

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

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

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


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

Ответы [ 2 ]

10 голосов
/ 10 декабря 2010

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

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

<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 голос
/ 10 декабря 2010

Выложенные вами строки htaccess выглядят очень похоже на то, что используется Zend Framework. У них есть руководство по настройке перезаписи, которое содержит раздел в IIS 7.0 .

...