Назад | Перейти на главную страницу

Apache переписывается на Nginx

Я пытаюсь установить thebuggenie на свой сервер Nginx. К сожалению, он находится в подкаталоге (я ничего не могу с этим поделать) и использует перезапись apache для ВСЕХ своих URL-адресов. У меня был некоторый успех, когда я переместил все из подкаталога, но, к сожалению, в основном (корневом) каталоге есть вещи, которые ему нужны. В любом случае, у меня есть файл .htaccess, который он предоставляет, и мне нужно знать, как преобразовать перезаписи в перезаписи nginx. Мои файлы конфигурации находятся здесь:

http://paste-bin.com/view/eb48c716

Думаю, основная проблема - это RewriteBase ...

Извините за объединение их вместе, в настоящее время я не могу добавить более 1 URL.

Я знаю, что это старый вопрос, но нашел решение для thebuggenie 3.1.4, работающего с nginx 1.0.6:

server {
    server_name site.com;
    root /var/www/site/public_html/thebuggenie;
    large_client_header_buffers 4 8k;
    index index.php index.html;

    location ~ \..*/.*\.php$ { return 403; }

    location ~ \.php {
      #add fastcgi_param values to suit environment
      fastcgi_pass 127.0.0.1:9000;
  }

    location ~ /(?<suburi>.*){
      set $suburi $1;
      try_files $uri $uri/ /index.php?url=$suburi&$args;
  }

}

Некоторые примечания

  1. настройка root - хотя вы можете извлечь и установить в / var / www / site / public_html /, программа ожидает, что корень сайта будет в каталоге «thebuggenie».

  2. Блок местоположения по умолчанию расположение ~ / (? ... необходимо следовать блоку php fastcgi.

Если у кого-то есть дальнейшие улучшения / более оптимальные подходы, я бы с удовольствием их увидел.

Чтобы завершить ответ jimg, если корень вашего документа указывает на установочный каталог thebuggenie (так что вы можете просто указать на http://<your-server>/), подходящее регулярное выражение для nginx:

location ~ /(.*) {
    try_files $uri $uri/ /index.php?url=$1&$args;
}

Вы все еще можете использовать set $suburi $1; если хотите, но даже в примере с jimg вы можете просто использовать $1 прямо.

Похоже, что программное обеспечение было разработано с большой зависимостью от apache. Я бы использовал nginx перед apache для этого сайта. Поставьте apache на 8080 localhost или что-то подобное. Вы по-прежнему получаете преимущества nginx для статических файлов без необходимости переписывать все их правила. В противном случае я бы ссорился с thebuggenie и заставлял их переводить для вас свои переписанные файлы apache. Это глупо.