Преобразование .htaccess в IIS web.config - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь настроить перезапись URL для сервера IIS с помощью панели управления Plesk. В локальной среде с Apache все работает нормально. Но не повезло в IIS с ошибкой 500 для всех запросов .

Ниже моя конфигурация переписывания htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 

RewriteRule ^(en)/rooms/([a-zA-Z0-9-_]+)/?$ index.php?lang=$1&page=room&room_id=$2 [L,QSA]
RewriteRule ^(en)/([a-zA-Z0-9-_]+)/?$ index.php?lang=$1&page=$2 [L,QSA]
RewriteRule ^(en)/?$ index.php?lang=$1 [L,QSA]

RewriteRule ^rooms/([a-zA-Z0-9-_]+)/?$ index.php?page=room&room_id=$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9-_]+)/?$ index.php?page=$1 [L,QSA]
</IfModule>

Я пытался конвертировать с помощью онлайн-инструмента здесь и получаю следующий результат:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="rule 1Q" stopProcessing="true">
                    <match url="!(/$|\.)"  />
                    <action type="Rewrite" url="%{REQUEST_URI}/"  />
                </rule>
                <rule name="rule 2a" stopProcessing="true">
                    <match url="^(en)/rooms/([a-zA-Z0-9-_]+)/?$"  />
                    <action type="Rewrite" url="/index.php?lang={R:1}&page=room&room_id={R:2}"  appendQueryString="true" />
                </rule>
                <rule name="rule 3a" stopProcessing="true">
                    <match url="^(en)/([a-zA-Z0-9-_]+)/?$"  />
                    <action type="Rewrite" url="/index.php?lang={R:1}&page={R:2}"  appendQueryString="true" />
                </rule>
                <rule name="rule 4a" stopProcessing="true">
                    <match url="^(en)/?$"  />
                    <action type="Rewrite" url="/index.php?lang={R:1}"  appendQueryString="true" />
                </rule>
                <rule name="rule 5a" stopProcessing="true">
                    <match url="^rooms/([a-zA-Z0-9-_]+)/?$"  />
                    <action type="Rewrite" url="/index.php?page=room&room_id={R:1}"  appendQueryString="true" />
                </rule>
                <rule name="rule 6a" stopProcessing="true">
                    <match url="^([a-zA-Z0-9-_]+)/?$"  />
                    <action type="Rewrite" url="/index.php?page={R:1}"  appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
        <httpErrors>
            ...
        </httpErrors>
    </system.webServer>
</configuration>

Впервые я работаю над IIS и Plesk, поэтому я понятия не имел об этой проблеме. Поэтому, пожалуйста, дайте мне знать, как решить эту проблему. Любая помощь приветствуется. Спасибо

...