我写的是简单的.htaccess并在Windows Azure网站上测试它,但mod_rewrite在那里不起作用。为什么?我如何重新配置Azure?
RewriteEngine on AddDefaultCharset utf-8
RewriteCond%{REQUEST_FILENAME}! - f RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule ^ test.html $ test.php?%{QUERY_STRING} [L]
答案 0 :(得分:16)
.htaccess
文件。
Azure网站在Microsoft IIS上运行。
IIS有一个URL Rewrite模块,非常类似于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>