1

我正在为我从未在其网站上工作过的客户设置一些重写。目标很简单,但由于某种原因,服务器似乎忽略了 .htaccess 文件和 Web.config 文件!为了以防万一,我都尝试了,但服务器运行的是 Microsoft-IIS/6.0,并且由 PleskWin、ASP.NET 和 PHP/5.2.17 提供支持。该站点正在运行 Wordpress,所有代码都是用 PHP 编写的。至少,Web.config 文件应该会破坏网站,但绝对没有影响。这两个文件都位于根目录“httpdocs”中,该目录与 index.php 文件位于同一目录中。

这是我的 Web.config 文件:

<system.webServer>
<rewrite>
  <rules>
    <rule name="Rewrite CI Index">
      <match url=".*" />
      <conditions>
        <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|ttf|eot" negate="true" />
        <add input="{REQUEST_FILENAME}" pattern="admin.php" negate="true" />
        <add input="{REQUEST_FILENAME}" pattern="index.php" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php/{R:0}" />
    </rule>
  </rules>
</rewrite>
</system.webServer>

还有我的 .htaccess (以防万一)

RewriteEngine On
RewriteRule ^google.html$ http://www.google.com/ [R=301]
4

1 回答 1

0

我认为您的重定向不起作用,因为system.webServerIIS 6.0 不支持该元素,因此您在该部分中指定的任何信息都不会被使用(参见此处:http ://www.iis.net/configreference/system.webserver )。

如果您想在 IIS 6.0 中进行重定向,那么您可能必须安装一个单独的 ISAPI 过滤器。这些问题有更多信息:

在 IIS 6 中写入 URL 重写规则的位置
https://serverfault.com/questions/1408/how-can-i-rewrite-urls-ala-mod-rewrite-for-free-in-iis-6

此外,值得一提的是,确保在 IIS 中为此站点设置了 Web 应用程序。如果文件只是在没有创建应用程序的虚拟目录中,则不会使用 ASP.NET 来运行网站。在重新阅读您的问题时,看起来好像这已经完成了,但我想我会提到它以防万一。可以在此处找到有关如何执行此操作的文档:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/1d1c9a73-b4c5-4cfb-ad69-b77fa2e17e19.mspx?mfr=true

于 2013-08-30T15:43:29.000 回答