php - Azure 上使用 PHP 的公共(public)文件夹

标签 php azure

开发 PHP 应用程序时,通常会在应用程序结构中的某个位置有一个 Web 服务器所针对的公用文件夹。私有(private)应用程序代码存储在该目录之外,因此无法公开访问。

我有一个 PHP 应用程序,我试图在 Azure 上运行,并希望将我的 WebRole 中的一个目录配置为“公共(public)目录”,但在 Eclipse 中(我正在使用 PHP Azure 插件)我不这样做看不到任何配置它的选项。有没有办法配置角色的实际“根”目录?或者该角色本质上是公开的,因此我应该将我的私有(private)代码存储在其他地方并与 WebRole 共享?

最佳答案

默认情况下,网站的根目录在 Windows Azure 中的 IIS 配置中始终是公开的。不过,由于支持 URL 重写,因此很容易克服这个问题。

就像 Apache 上的 .htaccess 和 mod_rewrite 一样,您可以将当前请求重写到不同的文件夹。 IIS 将在内部使用此信息来查找您的文件,但用户的浏览器永远不会注意到此重写的发生。

这是 XML 的一部分,您可以将其复制/粘贴到 Web.config 文件中。下面代码中的公共(public)根是“public”,如果这是“shizzle”,请确保更改它:-)

<!-- Rewrite rules to /public -->
<rewrite>
  <rules>
    <clear />
    <rule name="TransferToPublic" patternSyntax="Wildcard" stopProcessing="true">
      <match url="*" />
      <action type="Rewrite" url="public/{R:0}" />
    </rule>
  </rules>
</rewrite>

供引用:这位于 XML 节点下。

另一个选择是“建立你自己的角色”,就像我在这篇文章中所做的部分Lightweight PHP application deployment to Windows Azure 。通过调整一些文件,您可以欺骗 IIS 进入不同的公共(public)根目录。如果您使用我的博客文章作为 Azure 的打包部分,并使用 Google/Bing/MSDN 作为 IIS 配置部分,那么这也应该有效。

享受吧!

关于php - Azure 上使用 PHP 的公共(public)文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5971423/

相关文章:

sql - ALTER FEDERATION SWITCH 操作失败。指定的边界值不存在

azure - 无法使用 SPARK 在 Synapse Lake 数据库中创建架构

c# - Databricks API 2.0 - 集群获取响应 - TEMPORARILY_UNAVAILABLE

php - 这对于 PHP 中的用户输入是否足够安全

php - 将用户和密码从 Active Directory 导出到 PHP

PHP:对象的最后一个键

php - 找不到类 'Maatwebsite\\Excel\\ExcelServiceProvider' - Laravel 4.2

php - 将 SQL 数据库查询结果显示为链接

java - Azure SQL 数据仓库

azure - 将rabbitmq部署到Azure