Azure php web app web.config无法正常工作

时间:2017-01-05 01:09:34

标签: php .htaccess azure iis azure-web-sites

我有以下规则显示未找到jpg的 avatar.jpg /images/avatar.jpg)。我已使用 IIS管理器.htaccess转换为web.config

这是.htaccess规则,它是常规apache服务器中的工作文件,

RewriteEngine On
RewriteCond %{REQUEST_URI} \.(jpg)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*$ /images/user-default.png [L]

这是转换后的web.config文件(/uploads/web.config),

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 3" stopProcessing="true">
                    <match url=".*$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{URL}" pattern="\.(jpg)$" ignoreCase="false" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/images/avatar.png" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

仍然为非现有图像提供404未找到错误。

1 个答案:

答案 0 :(得分:0)

默认情况下,PHP应用程序中Azure等静态文件不需要额外配置才能显示在浏览器上。您可以尝试使用新的空的PHP Azure Web App,其中包含带有测试图像文件的images文件夹 enter image description here
它应该可以正常工作除外。

关于您的问题,它应该归功于PHP应用程序中的路由配置。它可能会拦截静态文件的请求并尝试匹配PHP应用程序中的路由,从而引发NOT FOUND问题。

您可以尝试删除web.config文件以进行进一步的故障排除。