【问题标题】:mod_rewrite infite loopmod_rewrite 无限循环
【发布时间】:2011-02-18 13:20:49
【问题描述】:

我有 Apache 2.2 和 3 个虚拟主机,并且我无法解决 mod_rewrite 无限 lopp 问题。 Apache 在我公司的局域网中,IP 地址为 192.168.1.228。 2个虚拟主机完美运行。第三个问题。我的网络管理员创建了一个指向 192.168.1.228 的子域。虚拟主机是这样配置的:

<VirtualHost 192.168.1.228>
   DocumentRoot "C:/Apache/htdocs/stansrodowiska"
   ServerName giostube.mycompany.local

  LimitInternalRecursion 1000

  <Directory "C:/Apache/htdocs/stansrodowiska">
      Options Indexes FollowSymLinks Includes
      AllowOverride None
      Order allow,deny
      Allow from all

      RewriteEngine on

      RewriteCond $1 !^(index\.php|images|upload|css|download|assets|js|nfos|robots\.txt)
      RewriteRule ^(.*)$ /stansrodowiska/index.php/$1 [L]

  </Directory>

</VirtualHost> 

如果我通过地址从我的局域网访问该网站:http://giostube.mycompany.local/ 我会得到一个

403 Forbidden

You don't have permission to access /stansrodowiska/index.php/stansrodowiska/index.php/stansrodowiska/index.php/stansrodowiska/index.php/stansrodowiska/index.php/stansrodowiska/index.php/stansrodowiska/index.php......... on this server

/stansrodowiska/index.php/ 当然重复的次数要多得多,我认为大约是 2048 个字符,这是 HTTP POST 的最大值。 奇怪的是,完全相同的 mod_rewrite 规则适用于其他预配置的 WAMP 环境 (Vertrigo)。
下面有一个 Codeigniter 1.7.2 应用程序。

是 mod_rewrite 规则中的错误还是我必须在其他地方搜索?

【问题讨论】:

    标签: apache mod-rewrite infinite-loop


    【解决方案1】:

    改变这一行:

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

    收件人:

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

    【讨论】:

    • 一半好 - 在我浏览器的地址栏中,我转到:giostube.mycompany.local 后,它将 URL 转换为:192.168.1.228/stansrodowiska/gios/index。 IP后面的部分没问题。我不知道为什么它会显示 IP 而不是地址:giostube.mycompany.local/stansrodowiska/gios/index?第二件事:它不是将我重定向到正确的应用程序,而是重定向到具有不同应用程序的其他虚拟主机。但现在我只剩下小字符了,你把第二个 VHost 的代码放在这里。我会把它放在另一条评论中。
    • 如果 mod_rewrite 是正确的解决方案,所以我接受。其余的是我的错误,我修复了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    相关资源
    最近更新 更多