将Codeigniter .htaccess文件转换为IIS 8

时间:2015-09-11 11:31:01

标签: php apache .htaccess mod-rewrite iis

我使用 codeigniter框架和Xampp apache服务器在本地开发了项目, url重定向已打开,重写规则在.htaccess文件中定义并正常工作,这是我的.htaccess文件:

RewriteEngine On
RewriteBase /myproject
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

现在突然客户端需求已经改变,他想要所有的Windows环境,而不是他建议使用IIS的apache,所以我必须转移到IIS。正在运行的相同项目正在运行并重定向默认控制器,该控制器在routes.php文件中定义,但我的其他重定向不起作用。我搜索并发现.htaccess文件无法在IIS上工作,需要将.htaccess文件转换为web.config但是我试图将我的.htaccess转换为 web.config ,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="MyRule">
                <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="false" />
             </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration> 

但这确实有效,会出现以下错误:

HTTP错误500.19 - 内部服务器错误 无法访问请求的页面,因为页面的相关配置数据无效。

  

详细错误信息:

     

模块IIS Web核心

     

通知BeginRequest

     

处理程序尚未确定

     

错误代码0x8007000d

配置错误

  

配置文件\?\ C:\ inetpub \ wwwroot \ myproject \ web.config   请求的网址http://localhost:80/myproject/   物理路径C:\ inetpub \ wwwroot \ myproject \   登录方法尚未确定   登录用户尚未确定

配置来源:    -1:     0:

我尝试了不同的代码,但每次都显示相同的错误,**请帮助

0 个答案:

没有答案