代码之家  ›  专栏  ›  技术社区  ›  Andrew

如何让我的php网站使用.htaccess文件进行基本的URL重写以在新的windows服务器上工作?

  •  0
  • Andrew  · 技术社区  · 16 年前

    我刚买了一台新的Windows服务器,上面有IIS和plesk面板。好时光(我想……)

    我有大约10个在PHP上运行的客户端站点,这应该不是问题。但是我似乎无法从我的主机提供商那里得到一个关于如何让我的.htaccess在windows服务器上工作的答案,所以我被两个主机的工作刺痛了,不知道最好的方法。

    如何使.htaccess重写在windows上工作?

    编辑 我已经安装了IIS版本2的重写模块,并尝试将我的.htaccess文件转换为一组web.config规则。

    有没有什么想法或者有没有人遇到过类似的问题?

    我很快就会发布我正在使用的规则和旧的.htaccess文件。

    linux安装程序中的.htaccess文件

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    

    Windows版本

    <rewrite>
      <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^.*$" />
          <conditions logicalGrouping="MatchAny">
            <add input="{REQUEST_FILENAME}" matchType="IsFile"  />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory"  />
          </conditions>
          <action type="None" />
        </rule>
        <rule name="Imported Rule 2" stopProcessing="true">
          <match url="^.*$" />
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   ceejayoz    16 年前

    .htaccess 文件是特定于apacheweb服务器的。他们不会在IIS上做任何事。

    Here's a tutorial .