无法从IIS 7中的kohana URL中删除index.php

时间:2012-03-01 21:53:46

标签: php iis kohana url-rewrite-module

我知道这个话题已经有其他一些帖子了,但我已经尝试了他们所说的所有内容,而且我似乎无法让它发挥作用。

我在http://localhost/kohana安装了php kohana框架,它正在运行。问题是我无法从我的URL中删除/index.php/。

我尝试将安装中的.htaccess文件导入到IIS URL Rewrite模块中,但没有运气。

我的引导程序如下

Kohana::init(array(
'base_url'   => '/kohana',
'index_file' => ''
));

我放入/ kohana direcotry的web.config看起来像是

<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Imported Rule 1" stopProcessing="true">
                <match url="^(?:application|modules|system)\b.*" ignoreCase="false" />
                <action type="Rewrite" url="index.php/{R:0}" />
            </rule>
            <rule name="Imported Rule 2">
                <match url=".*" ignoreCase="false" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php/{R:0}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

我还尝试了this page

上的重写规则

似乎没什么用。如果我去http://localhost/kohana/index.php/welcome它就行了。如果我转到http://localhost/kohana/welcome,我会从IIS收到404错误(而不是kohana中的404错误)。

我觉得自己正在撞墙,任何想法?

3 个答案:

答案 0 :(得分:1)

你的web.config文件没问题,我使用的是同样的,从来没有遇到任何问题。 我认为问题可能在你的bootstrap.php中。试试这个:

Kohana::init(array(
   'base_url'   => '/kohana/',
   'index_file' => FALSE
));

答案 1 :(得分:1)

我遇到了同样的问题,我下载了这个文件http://www.iis.net/downloads/microsoft/url-rewrite

然后我重新打开IIS,看到有一个新选项“URL Rewrite”。在URL的右侧栏中,Rewrite有一个标记为“Import Rules ...”的链接,因此我导入了“.htaccess”并删除了“RewriteBase /”这一行,因为它引发了一个错误。然后,问题解决了!

步骤一步:

  • 下载/安装http://www.iis.net/downloads/microsoft/url-rewrite
  • 转到IIS管理器:sites / [YOUR_DOMAIN]
  • 打开新模块“URL Rewrite”
  • 打开右侧链接“导入规则...”
  • 导入“.htaccess”文件并删除“RewriteBase /”
  • 保存!

好吧,我希望这对某人有所帮助,因为我没有像这样一步一步地解决我的问题。

抱歉我的英文。

答案 2 :(得分:0)

我刚放弃并在我的Windows服务器上使用Apache。删除index.php就像第一次尝试时的魅力一样。