2010-05-22 6 views
2

Я настраиваю nginx с поддержкой нескольких доменов или подстановочных знаков для удобства, вместо того, чтобы настраивать 50+ разных доступных сайтов/* файлов. Надеюсь, этого достаточно, чтобы показать вам, что я пытаюсь сделать. Некоторые из них являются статическими сайтами, некоторые из них динамичны, обычно устанавливается Wordpress.Конфигурация виртуального хоста nginx с несколькими доменами

Если index.php существует, все работает так, как ожидалось.

Если запрашивается файл, который не существует (missing.html), то возникает ошибка 500 из-за перезаписи. Вошедшая ошибка:

* 112 переписывание или внутренний цикл перенаправления при обработке «/index.php/index.php/index.php/index.php/index.php/index.php/index.php/ index.php/index.php/index.php/index.php/missing.html»

базовая конфигурация Nginx в настоящее время я использую это:

`

listen 80 default; 
server _; 

... 

location/{ 
    root /var/www/$host; 

    if (-f $request_filename) { 
      expires max; 
      break; 
    } 

    # problem, what if index.php does not exist? 

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

... 

`

Если index.php не существует, и файл также не существует, я бы хотел, чтобы он был с ошибкой 404. В настоящее время nginx не поддерживает несколько условий if или вложенных, если так мне нужно обходное решение.

+0

Вы пробовали «перерыв» вместо «последнего» в переписывании? – rzab

+0

нет, но мне удалось заставить его работать сейчас, используя try_files вместо условия if/rewrite. 'try_files $ uri $ uri//index.php$uri @ 404;' Если index.php не существует, он перейдет в местоположение @ 404 – Poe

+1

'try_files' - это предлагаемый способ решения таких проблем, поскольку' if' не ведет себя слишком хорошо, и его использование не рекомендуется. Вы можете указать статус возврата непосредственно в 'try_files' вместо имени location:' try_files $ uri $ uri//index.php$uri = 404; ' –

ответ

0
if ($_SERVER['HTTP_HOST'] == 'desideshat.com') 
{ 
$vboptions['bburl'] = 'http://www.desideshat.com'; 
} 
else 
{ 
$vboptions['bburl'] = 'http://www.vedesi.com'; 
} 
?> 
Смежные вопросы