如何在 Azure 中使用 PHP 路由脚本?
How to use PHP routing script in azure?
我目前运行正在使用一个内置服务器,我想将它转移到 azure。目前我运行服务器使用以下命令
php -S localhost:8000 route.php
其中 route.php 是我的路由脚本,它处理我的所有请求。我查看了 azure 中的应用程序设置,但似乎找不到所需的设置。
PHP Azure Web Apps 上的应用程序 运行 托管在 IIS 上,如果我没有误解的话,您正在使用 route.php
作为应用程序的入口。
您可以在 Azure 门户的“应用程序设置”边栏选项卡下配置默认文档,
把route.php
设置在最前面,然后当请求进来时,IIS会在dufault文档列表下逐个查找页面,处理请求。
Web.config 可用于在请求被服务器处理之前对其进行修改。因此可以使用以下脚本将流量推送到路由脚本
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="SpecificRewrite" stopProcessing="true">
<match url="^([A-Za-z0-9-/]+)/?$" />
<action type="Rewrite" url="/route.php?url={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
match 和 action 参数均为正则表达式,因此可以针对高级路由进行修改
我目前运行正在使用一个内置服务器,我想将它转移到 azure。目前我运行服务器使用以下命令
php -S localhost:8000 route.php
其中 route.php 是我的路由脚本,它处理我的所有请求。我查看了 azure 中的应用程序设置,但似乎找不到所需的设置。
PHP Azure Web Apps 上的应用程序 运行 托管在 IIS 上,如果我没有误解的话,您正在使用 route.php
作为应用程序的入口。
您可以在 Azure 门户的“应用程序设置”边栏选项卡下配置默认文档,
route.php
设置在最前面,然后当请求进来时,IIS会在dufault文档列表下逐个查找页面,处理请求。
Web.config 可用于在请求被服务器处理之前对其进行修改。因此可以使用以下脚本将流量推送到路由脚本
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="SpecificRewrite" stopProcessing="true">
<match url="^([A-Za-z0-9-/]+)/?$" />
<action type="Rewrite" url="/route.php?url={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
match 和 action 参数均为正则表达式,因此可以针对高级路由进行修改