Как написать правило для перезаписи URL для чистых URL для IIS - PullRequest
0 голосов
/ 12 мая 2019

У меня работает Typo3 на сервере 2012R2 и IIS. На этом же сервере также установлен обмен. Typo3 теперь создает чистые URL, но эти URL всегда создают ошибку 404. Я нашел решение, чтобы решить эту проблему с

<system.webServer>
    <defaultDocument>
        <files>
            <add value="index.php" />
        </files>
    </defaultDocument>
    <rewrite>
        <rules>
            <rule name="SpeakingURL" enabled="false">
                <match url="(^(typo3|fileadmin|typo3temp|uploads)/|\.(php|js|css|jpg|png|gif|pdf)$)" negate="true" />
                <action type="Rewrite" url="index.php" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

но обмен больше не работает правильно. Поэтому мне нужно искать решение, которое обнаруживает только чистые URL.

Пример: http; // www.myDomain.com/customers/name/location Этот URL я должен отправить на index.php.

В URL нет строки запроса, нет точки или какого-либо расширения в пути. Как создать правило для перезаписи URL-адреса IIS, чтобы чистые URL-адреса, входящие в комплект, передавались в index.php?

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Кажется, я нашел решение для своей проблемы. До сих пор у меня работает нормально. Я добавил код ниже в разделе system.webServer в файле web.config под wwwroot.

   <defaultDocument>
        <files>
            <add value="index.php" />
        </files>
    </defaultDocument>
    <rewrite>
        <rules>
            <clear />
            <rule name="Clean URL" enabled="true">
                <match url="(.*)" />
                <action type="Rewrite" url="index.php" />
                <conditions>
                   <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                   <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
               </conditions>
           </rule>
        </rules>
    </rewrite>

Это для Typo3 9,5 +

0 голосов
/ 13 мая 2019

Ваша проблема - два вида виртуальных URL.

Я не знаю много об обмене, но я знаю TYPO3.

В TYPO3 у вас есть несколько реальных папок для файлов, таких как изображенияCSS, JS и весь HTML являются виртуальными.Хотя у вас есть точные пути к файлам, только ваш виртуальный контент отвечает за пути к HTML (виртуальным страницам).Это затрудняет предоставление правил исправлений для перезаписей.
В обычных установках TYPO3 у вас есть только эти реальные файлы, а все остальное является виртуальным и обрабатывается /index.php. Но это допустимо, только если вы используете TYPO3 9 или расширение realurl (или старое simulatestatic). в противном случае TYPO3 использует только index.php и обрабатывает остальное в параметре URL (например, ?id=124&L=2&type=98)

Решение:
отключить realurl (con: нет хороших URL)
или использовать расширение staticfilecache, которое экспортирует все CMS-страницы в виде реальных файлов, поэтому перезапись не требуется (con: нет «динамического» контента).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...