Прежде чем кто-либо сделает этот дубликат вопроса, пожалуйста, выслушайте меня. Я исследовал несколько способов сделать это, которое должно работать, но я думаю, потому что WordPress работает на этом сервере, это вызывает конфликт.
Настройка: WordPress сайт работает на сервере Windows. Однако у меня есть файлы в webroot вне папки wp-content, к которым пользователи должны получить доступ. Мне нужно удалить расширение на этих файлах.
Когда я использую это:
<rewrite>
<rules>
<rule name="Redirect .php extension" stopProcessing="false">
<match url="^(.*).php$" ignoreCase="true" />
<conditions logicalGrouping="MatchAny">
<add input="{URL}" pattern="(.*).php$" ignoreCase="false" />
</conditions>
<action type="Redirect" url="{R:1}" redirectType="Permanent" />
</rule>
<rule name="hide .php extension" stopProcessing="true">
<match url="^(.*)$" ignoreCase="true" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}.php" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="{R:0}.php" />
</rule>
</rules>
</rewrite>
Это берет расширение из URL, но страницы за пределами WordPress не работают. Я думаю из-за этого, который уже находится в web.config:
<rule name="WordPress: http://hiddenwebsitewp.azurewebsites.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="Rewrite" url="index.php"/>
</rule>
Кто-нибудь имел эту проблему раньше?