ЧПУ-ссылки под IIS

Статус
В этой теме нельзя размещать новые ответы.

son

Проверенные
Сообщения
27
Реакции
11
Баллы
8,100
Как заставить работать ЧПУ под IIS ?
 
Для IIS 7 есть решение... Попробуем? :)
 
Пробуем. Как раз IIS 7
 
Создайте файл web.config с таким содержимым:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
                    </conditions>
                    <action type="None" />
                </rule>
                <rule name="Imported Rule 2" stopProcessing="true">
                    <match url="^(data|js|styles|install)" />
                    <action type="None" />
                </rule>
                <rule name="Imported Rule 3" stopProcessing="true">
                    <match url="^.*$" />
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
        <httpErrors existingResponse="PassThrough" />
    </system.webServer>
</configuration>

И положите его в корень своего форума. Ни у всех почему-то работает это...
 
  • Мне нравится
Реакции: son
Нужно только еще установить mod_rewrite для IIS.
Если в этом модуле импортировать .htaccess, то после удаления строк с "ошибками" получаем
Код:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Импортированное правило 1" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
                    </conditions>
                    <action type="None" />
                </rule>
                <rule name="Импортированное правило 2" stopProcessing="true">
                    <match url="^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt)" />
                    <action type="None" />
                </rule>
                <rule name="Импортированное правило 3" stopProcessing="true">
                    <match url="^.*$" />
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
и этот конфиг отличается от Вашего в части
Код:
                    <match url="^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt)" />
На сколько это критично?
 
Не думаю, что это очень критично. Главное для начала добиться результата, а потом уже можно будет смотреть логи на наличие ошибок, если они будут...
 
ЧПУ работает. Но в стоковом .htaccess указано именно
Код:
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
может данные у вашего источника устарели? :)
 
Не знаю - может и устарели, на оф форуме брал...
 
Сделал себе так:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
                    </conditions>
                    <action type="None" />
                </rule>
                <rule name="Imported Rule 2" stopProcessing="true">
                    <match url="^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt)" />
                    <action type="None" />
                </rule>
                <rule name="Imported Rule 3" stopProcessing="true">
                    <match url="^.*$" />
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
        <httpErrors existingResponse="PassThrough" />
    </system.webServer>
</configuration>
Все работает.
Спасибо за помощь. ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу