首页 > 解决方案 > PHP HTTP 重定向在 Azure 应用服务上不起作用

问题描述

当我的用户访问我的一个端点时,我试图将他们重定向到某个网站。 https://url-shortner-in.azurewebsites.net/openfb将指向 google.com

我的服务器使用 REST API 托管在带有 Slim Framework v4 的 Azure App Service 上。

这是我重定向用户的电话。

return $response
            ->withHeader('Location', 'http://www.google.com')
            ->withStatus(302);

它在我的本地 WAMP 服务器上运行良好。我被重定向到谷歌。

但是在 Azure 应用服务上上传后,代码不起作用。重定向后我看到一个空白页面。URL 保持不变(我的网站 URL,而不是 Google 的。)

Azure 是否存在任何错误配置?

我的 .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

标签: phpazureapachehttphttps

解决方案


我建议你在创建 webapps 时选择 windows 平台。

您可以尝试web.config在 wwwroot 文件夹下创建文件,如果它不存在。如果您在部署 webapp 时可以找到此文件,则需要对其进行修改。

具体要添加或修改的内容是RewriterConfig需要添加到web.config中。

格式如下:

<configSections>
 <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter" />
</configSections>
......
<RewriterConfig>
   <Rules>
      <RewriterRule>
        <LookFor>^default/([0-9]+)/([_0-9a-z-]+)</LookFor>
        <SendTo>11.aspx?id={R:1}</SendTo>
      </RewriterRule>
   </Rules>
</RewriterConfig>

更详细的可以参考以下两篇帖子:

Azure Web App Angular 未重定向到 www

DNN UrlRewrite(“DotNetNuke.HttpModules.UrlRewriteModule, DotNetNuke.HttpModules”)不在 web.config 上运行自定义重写规则


推荐阅读