nginx多域虚拟主机配置

nginx多域虚拟主机配置,nginx,http-status-code-404,Nginx,Http Status Code 404,为了方便起见,我正在使用多域或通配符支持设置nginx,而不是设置50多个不同的可用站点/*文件。希望这足以告诉你我在做什么。有些是静态站点,有些是动态站点,通常安装wordpress 如果存在index.php,则一切正常 如果请求的文件不存在missing.html,则会由于重写而出现500错误。记录的错误是: *112处理/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/inde

为了方便起见,我正在使用多域或通配符支持设置nginx,而不是设置50多个不同的可用站点/*文件。希望这足以告诉你我在做什么。有些是静态站点,有些是动态站点,通常安装wordpress

如果存在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/index.php/index.php/index.php/index.php/missing.html时的重写或内部重定向循环

我目前使用的基本nginx配置是:

`

`


如果index.php不存在,并且该文件也不存在,我希望它出现错误404。目前,nginx不支持多条件if或嵌套if,因此我需要一个解决方法。

您是否在重写中尝试了中断而不是最后一个条件?否,但我现在可以使用try\u文件而不是if/重写条件使其工作。试试看文件$uri$uri//index.php$uri@404;如果index.php不存在,它将转到位置@404try\u files是解决此类问题的建议方法,因为If的表现不太好,不鼓励使用它。您可以直接在try_文件中指定返回状态,而不是指定位置:try_文件$uri$uri//index.php$uri=404;在重写过程中,您是否尝试了中断而不是最后一个?没有,但我现在可以使用try_文件而不是if/rewrite条件使其工作。试试看文件$uri$uri//index.php$uri@404;如果index.php不存在,它将转到位置@404try\u files是解决此类问题的建议方法,因为If的表现不太好,不鼓励使用它。您可以直接在try_文件中指定返回状态,而不是指定位置:try_文件$uri$uri//index.php$uri=404;
if ($_SERVER['HTTP_HOST'] == 'desideshat.com')
 {
 $vboptions['bburl'] = 'http://www.desideshat.com';
 }
 else
 {
 $vboptions['bburl'] = 'http://www.vedesi.com';
 } 
?>
if ($_SERVER['HTTP_HOST'] == 'desideshat.com')
 {
 $vboptions['bburl'] = 'http://www.desideshat.com';
 }
 else
 {
 $vboptions['bburl'] = 'http://www.vedesi.com';
 } 
?>