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

重复的“index.php”使用ISAPI在IIS上重写URL

  •  1
  • jd182  · 技术社区  · 13 年前

    我正在使用ISAPI_Rewrite v2删除IIS 6上的index.php。这就是重写的工作方式:

    http://dev.mysite.co.uk/mypage      => http://dev.mysite.co.uk/index.php/mypage
    http://dev.mysite.co.uk/anotherpage => http://dev.mysite.co.uk/index.php/anotherpage
    

    使用$_SERVER['REQUEST_URI'],我可以看到实际发生的情况如下:

    http://dev.mysite.co.uk/mypage      => http://dev.mysite.co.uk/index.php/index.php/mypage
    http://dev.mysite.co.uk/anotherpage => http://dev.mysite.co.uk/index.php/index.php/anotherpage
    

    这会导致404错误。重写规则包含在httpd.ini中,httpd.ini位于子域的根文件夹中。以下是我使用的规则:

    [ISAPI_Rewrite]
    RewriteRule ^(.*)$ /index.php/$1 [L]
    

    有人知道是什么原因造成的吗?我发现 this post 它描述了同样的问题,但没有答案。

    谢谢

    1 回复  |  直到 9 年前
        1
  •  1
  •   TonyCool    13 年前

    我想它只是循环,所以请试着这样修复它:

    [ISAPI_Rewrite]
    RewriteRule /(?!index\.php/.*)(.*) /index.php/$1 [L]