В структуре Laravel4 используется правило по умолчанию .htaccess для создания хороших URL-адресов.
Правило таково.
<IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
Вопрос: Что эквивалентно в IIS?
Вы можете использовать функцию импорта Apache для преобразования правила Apache в IIS.
В вашем случае это будет выглядеть так:
Или в файле web.config
:
<rule name="Imported Rule 1" stopProcessing="true"> <match url="^" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> </rule>
Это помогло мне, благодаря Oli Folkerd:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Laravel4" stopProcessing="true"> <match url="^" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions> <action type="Rewrite" url="index.php" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Есть несколько дополнительных разделов, которые стоит поместить в ваш файл web.config
В приведенном ниже коде можно создавать контроллеры restfull с использованием дополнительных глаголов PUT и DELETE HTTP и разрешать отображение страниц пользовательских ошибок laravel при удаленной отладке сервера:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Laravel4" stopProcessing="true"> <match url="^" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions> <action type="Rewrite" url="index.php" appendQueryString="true" /> </rule> </rules> </rewrite> <handlers> <remove name="PHP53_via_FastCGI" /> <add name="PHP53_via_FastCGI" path="*.php" verb="GET,HEAD,POST,PUT,DELETE" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.3\php-cgi.exe" resourceType="Either" requireAccess="Script" /> </handlers> <httpErrors errorMode="Detailed" /> </system.webServer> </configuration>