У меня есть веб-сайт, основанный на WordPress, размещенный в веб-приложении Azure.
В случае, если я ввешу строку за «/» моего URL (например: «www.blabla.net/asdfasdf»), я перенаправляюсь на мою сконфигурированную страницу 404 Error. НО: Если строка URL содержит один или несколько символов «+» (например: «www.blabla.net/as+asdf» или просто «www.blabla.net/+») перенаправление на сконфигурированную страницу 404 Error не работает, и я перенаправляюсь на страницу, содержащую следующий текст:
Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступно.
Мой файл «web.config» в IIS 8 выглядит так:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="WordPress: http://blabla.net" patternSyntax="Wildcard"> <match url="*"/> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/> </conditions> <action type="Redirect" url="index.php"/> </rule></rules> </rewrite> </system.webServer> </configuration>
Я был бы очень признателен, если бы вы могли дать мне подсказку, как настроить файл web.config таким образом, чтобы символы «+» обрабатывались как другие различные символы, а перенаправление выполнялось на сконфигурированную страницу 404 Error?
Заранее спасибо!
Из-за соображений безопасности URL-запрос, содержащий двойную escape-последовательность, будет отклонен модулем фильтрации с IIS 7. Вот почему у вас есть код ответа 404.11, когда вы помещаете символ «+» в URL-адрес. Вы можете обратиться к этому сообщению за подробной информацией.
Если вы настаиваете на создании URL-адреса с символом «+» для работы, вы можете использовать файл web.config
как указано ниже. Затем www.blabla.net/as+asdf
или www.blabla.net/+
будут перенаправлены на сконфигурированную страницу 404 Error, но имейте в виду, что это может как-то снизить уровень безопасности на вашем веб-сайте.
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <system.webServer> <security> <requestFiltering allowDoubleEscaping="true" /> </security> <rewrite> <rules> <rule name="WordPress: http://blabla.net" patternSyntax="Wildcard"> <match url="*" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Redirect" url="index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration>