2

我已经工作了几个小时,现在试图让它工作。我有一个 CodeIgniter 网站,它曾经在运行良好的 Apache 服务器上。为了隐藏 index.php,我使用了 Apache URL Rewriter 作为 URL。出于某种原因,我无法让它在 IIS 上运行。我用谷歌搜索了它并想出了几个不同的选项,但有些要么不起作用,要么将我重定向到我的根目录。

我正在尝试像这样重写 URL http://domain.com/v2.3.1/index.php/test

以下是我在web.config文件中的规则:

 <rewrite>
        <rules>
             <rule name="Clean URL" stopProcessing="true">
                <match url="^(.*)$" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
            </rule>
        </rules>
    </rewrite>

当前配置会将我送回我的根目录。我的网站位于以下示例 URL:

http://domain/v2.3.1- 这将带我到我的主页

然而

http://domain/v2.3.1/test- 会带我回去,http://domain但网址永远不会改变http://domain/v2.3.1/test

4

1 回答 1

0

规则没有任何改变。我在错误的目录中有规则。网站根目录不是域根目录,它位于子目录中。使用 IIS,您需要将其web.config放在要重写 URL 的同一目录中。

经过几个小时的敲打我的头,我终于弄明白了。

于 2013-01-16T04:02:35.457 回答