如何在 iis 服务器上启用 mod_rewrite
我发现我的服务器(_SERVER["SERVER_SOFTWARE"] -Microsoft-IIS/7.0),Architecture x86 上没有启用 mod_rewrite 功能.如何启用 mod_rewrite.有人可以帮我.
I found that mod_rewrite function is not enabled on my server(_SERVER["SERVER_SOFTWARE"] -Microsoft-IIS/7.0),Architecture x86 .How can I enabled the mod_rewrite.Could any one please help me.
推荐答案
对我有用的答案是安装 Microsoft URL Rewrite 模块,然后在站点的根目录中创建一个 web.config 文件,其中包含它(规则):
The answer that worked for me was to install the Microsoft URL Rewrite module and then create a web.config file in the root of the site with this in it (the rules):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Security Rule" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{QUERY_STRING}" pattern="mosConfig_[a-zA-Z_]{1,21}(=|\%3D)" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="base64_encode.*(.*)" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="(<|%3C).*script.*(>|%3E)" />
<add input="{QUERY_STRING}" pattern="GLOBALS(=|[|\%[0-9A-Z]{0,2})" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="_REQUEST(=|[|\%[0-9A-Z]{0,2})" ignoreCase="false" />
</conditions>
<action type="CustomResponse" url="index.php" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="SEO Rule">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
<add input="{URL}" negate="true" pattern="^/index.php" ignoreCase="false" />
<add input="{URL}" pattern="(/|.php|.html|.htm|.feed|.pdf|.raw|/[^.]*)$" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
相关文章