Я пытаюсь установить 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;
}
}
Некоторые примечания
настройка root - хотя вы можете извлечь и установить в / var / www / site / public_html /, программа ожидает, что корень сайта будет в каталоге «thebuggenie».
Блок местоположения по умолчанию расположение ~ / (? ... необходимо следовать блоку 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. Это глупо.