Lighttpd переписать для Codeigniter взлома на определенных URL - PullRequest
2 голосов
/ 14 февраля 2012

Я перешел с apache на lighttpd, и с тех пор определенные URL прерывают переписывание и выдают 404. Никаких подробностей в файлах access.log, error.log о том, какой фактический URL был достигнут.

Такие работы: http://192.168.1.250/loop/rest/admin

Но не эти: http://192.168.1.250/loop/rest/admin/logs/file::log-2012-02-14.php

Если я пропущу переписывание и использую http://192.168.1.250/loop/rest/index.php?/admin/logs/file::log-2012-02-14.php

Я получу то, что хочу,

Вотмое правило переписывания:

url.rewrite-once = (
 "/(.*)\.(.*)" => "$0",
 "/(css|files|img|js|stats)/" => "$0",
 "^/([^.]+)$" => "/loop/rest/index.php/$1"
)

Любая помощь будет оценена.

Ответы [ 2 ]

4 голосов
/ 19 февраля 2012

У меня просто были те же проблемы при тестировании моего приложения codeigniter на lighttpd

Это сработало для меня:

  url.rewrite = (
      ".*\.(js|ico|gif|jpg|png|swf|css|html)$" => "$0",
      "^/(.*)$" => "index.php/$1"
 )

возможно, вы можете попробовать это для вашей настройки:

 url.rewrite = (
          ".*\.(js|ico|gif|jpg|png|swf|css|html)$" => "$0",
          "^/(.*)$" => "/loop/rest/index.php/$1"
     )

Убедитесь, что у вас есть некомментированный mod_rewrite вверху ... он идет по умолчанию с # перед ним.

0 голосов
/ 07 марта 2012

Я нашел правильные правила:

Прежде всего, пожалуйста, убедитесь, что ваша корневая директива указывает на корень вашей CI setupd.

root /var/www/loop;

Тогда эта директива местоположения будет работатьпрекрасно:

location /
  {
    if (!-e $request_filename)
    {
      rewrite ^/(.*)$ /index.php?/$1 last;
      break;
    }
  }
...