Azure 中的 Mod_rewrite

Posted

技术标签:

【中文标题】Azure 中的 Mod_rewrite【英文标题】:Mod_rewrite in Azure 【发布时间】:2013-07-23 20:38:12 【问题描述】:

我正在编写简单的 .htaccess 并在 Windows Azure 网站上对其进行测试,但 mod_rewrite 在那里不起作用。为什么?如何重新配置​​我的 Azure?

重写引擎开启 AddDefaultCharset utf-8

RewriteCond %REQUEST_FILENAME !-f RewriteCond %REQUEST_FILENAME !-d

重写规则 ^test.html$ test.php?%QUERY_STRING [L]

【问题讨论】:

【参考方案1】:

.htaccess 文件无法被 Azure 网站识别。

Azure 网站在 Microsoft IIS 上运行。

IIS 有一个 URL 重写模块,与 Apache 的 mod_rewrite 非常相似。您可以通过在站点根文件夹中添加web.config 文件来配置 URL 重写规则。

关注Creating Rewrite Rules 文章并向下滚动到“查看配置文件中的规则”以了解它的外观。

您定义的规则在web.config 中将如下所示(并且很可能会按预期工作):

<rewrite>
    <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
            <match url="^test.html$" ignoreCase="false" />
            <conditions logicalGrouping="MatchAll">
                <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="test.php?QUERY_STRING" appendQueryString="false" />
        </rule>
    </rules>
</rewrite>

【讨论】:

用于 IIS 的 Microsoft“URL 重写”模块还包括一个用于将 mod_rewrite 规则转换为 IIS 格式的工具。该模块是免费提供的,但它不是 Windows 安装的一部分。可以下载:iis.net/downloads/microsoft/url-rewrite 安装将“URL Rewrite”添加到 IIS 管理器。打开那个并使用“导入规则”操作进行转换。详细说明:docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/…

以上是关于Azure 中的 Mod_rewrite的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将 Azure 文件共享中的单个文件/文件夹挂载到 Azure 容器实例

仅从 Azure 存储 [Azure-Blob][REST] 中的 Blob 列表获取特定元数据

使用 python 将 azure Runbook 与 azure 中的文件共享连接起来

如何使用带有 Azure 存储帐户的 Azure 文件中的 PHP 显示文本内容本身?

在 azure 中的发布管道之间传递变量(触发 azure 管道扩展)

切换到 Azure.Storage.Queues 后 Azure 函数中的模型绑定问题