nginx多根配置问题
我有以下针对多个根目录的nginx配置(nginx多根配置问题,nginx,url-rewriting,config,centos7,Nginx,Url Rewriting,Config,Centos7,我有以下针对多个根目录的nginx配置(html/web为默认值,html/pma为附加路径): 因此,默认情况下会打开/html/web/index.php,但是website.com/pma会打开/html/pma/,其中pma是PHPMyAdmin 问题是: PHPMyAdmin身份验证表单重定向到index.php。因此,当我编写凭据时,它会将我重定向到/html/web/index.php!但是应该/html/pma/index.php。甚至从PHPMyAdmin注销也会重定向到/ht
html/web
为默认值,html/pma
为附加路径):
因此,默认情况下会打开/html/web/index.php
,但是website.com/pma
会打开/html/pma/
,其中pma
是PHPMyAdmin
问题是:
PHPMyAdmin身份验证表单重定向到index.php
。因此,当我编写凭据时,它会将我重定向到/html/web/index.php
!但是应该/html/pma/index.php
。甚至从PHPMyAdmin注销也会重定向到/html/web/index.php
有谁能建议一种更好的配置方式吗 我可以在您的配置中看到两个错误 您的
try_files
语句应该以/index.php
或=404
结尾,而不是两者都结束!有关详细信息,请参阅
嵌套的location~\.php$
块将永远不会被查询。外部位置~\.php$
块优先。您可以通过使用周围前缀位置
上的^ ~
修饰符来解决此问题。有关详细信息,请参阅。例如:
location ^~ /pma {
...
location ~ \.php$ {
...
}
}
location ~ \.php$ {
...
}
我可以在您的配置中看到两个错误 您的
try_files
语句应该以/index.php
或=404
结尾,而不是两者都结束!有关详细信息,请参阅
嵌套的location~\.php$
块将永远不会被查询。外部位置~\.php$
块优先。您可以通过使用周围前缀位置
上的^ ~
修饰符来解决此问题。有关详细信息,请参阅。例如:
location ^~ /pma {
...
location ~ \.php$ {
...
}
}
location ~ \.php$ {
...
}
谢谢,我会核对你的答案。您建议如何编写try_文件?假设路径
/index.php
始终存在,则第一个try_文件
语句中的=404
是多余的,请使用:try_文件$uri/index.php?$args
。我不相信$uri/
这个词有任何帮助,因为它会违反您的重写规则,它的目的是在目录存在时添加一个尾随/
。您的意思是我应该删除它吗?使用:try_files$uri/index.php?$args代码>未更改任何内容。我编辑了问题,删除了可能会影响某些事情的重写。谢谢,我会检查你的答案。您建议如何编写try_文件?假设路径/index.php
始终存在,则第一个try_文件
语句中的=404
是多余的,请使用:try_文件$uri/index.php?$args
。我不相信$uri/
这个词有任何帮助,因为它会违反您的重写规则,它的目的是在目录存在时添加一个尾随/
。您的意思是我应该删除它吗?使用:try_files$uri/index.php?$args代码>未更改任何内容。我编辑了问题,删除了可能会影响某些内容的重写。我不使用PMA,但您是否已将PmaAbsoluteUri
设置为指向/PMA/
?请参阅。将索引
移至位置
s之外@戴杜什卡没有帮忙。编入question@RichardSmith不,我没有。它选择了嵌套的phplocation
,其中未定义root
,因此您似乎必须在嵌套的location
内重复root
。我不使用PMA,但您已将PmaAbsoluteUri
设置为指向/PMA//code>?请参阅。将索引
移至位置
s之外@戴杜什卡没有帮忙。编入question@RichardSmith不,我没有。它选择了嵌套的phplocation
,其中未定义root
,因此您似乎必须在嵌套的location
中重复该root
。