我发现我的服务器上没有启用 mod_rewrite 功能(_SERVER["SERVER_SOFTWARE"] -Microsoft-IIS/7.0),架构 x86 。如何启用 mod_rewrite。任何人都可以帮助我。
4 回答
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>
如果您在商业托管服务提供商处托管,他们很可能会安装Microsoft URL Rewrite模块。这为您提供了与 Apache mod_rewrite 模块类似的功能。
要测试是否安装了此模块web.config
,请使用以下内容在您的网站根目录中创建一个名为的文件,然后尝试查找http://www.domain.com/google
您domain.com
网站的域。如果您被重定向到 google.com,则您的主机安装了 URL 重写模块。
网络配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect to google.com" stopProcessing="true">
<match url="^google$" />
<action type="Redirect" url="http://www.google.com/" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
1) 找到 httpd.conf (通常这个文件可以在名为 conf 、 config 的文件夹中找到或类似的东西)
2) 找到并取消注释 LoadModule rewrite_module modules/mod_rewrite.so 行
3) 找到 DocumentRoot “C:/path/to/my/root” 的行,在那里你会找到类似的内容
确保这两个大括号内的内容看起来像
选项全部
允许覆盖所有
4) 现在一切都完成了,重新启动 Apache 服务器,一切顺利
没有适用于 Windows 操作系统的免费版 mod_rewrite for LINUX。我发现的唯一方法是使用 URL REWRITE 在 IIS 上导入一个 .htaccess 文件,该 URL 在 Web 平台安装程序上免费提供。
安装 URL REWRITE 组件后,按照以下链接中的步骤导入 .htaccess 文件并创建其 Windows 等效文件 web.config 文件。
http://www.iis.net/learn/extensions/url-rewrite-module/importing-apache-modrewrite-rules
干杯。