我正在尝试设置一个别名,以便当有人访问时/phpmyadmin/
,nginx将从而/home/phpmyadmin/
不是通常的文档根目录中提取它。但是,每次我拉出URL时,它都会为所有未通过fastcgi拉出的项目提供404。fastcgi似乎工作正常,而其余的则不能。strace
告诉我它正在尝试从普通文档的根目录中提取其他所有内容,但我不知道为什么。谁能提供一些见识?
这是我的配置的相关部分:
location ~ ^/phpmyadmin/(.+\.php)$
{
include fcgi.conf;
fastcgi_index index.php;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name;
}
location /phpmyadmin
{
alias /home/phpmyadmin/;
}
作为nginx的长期Apache用户,我发现这真的很奇怪,不必要地复杂。我花了几个小时浏览文档,以试图理解原因。有人可以解释一下这种行为吗?别名应该只是位置别名。
—
tu-Restate Monica-dor duh 2014年
据我了解,别名是“只是”,但请注意,如果你省略后面
—
斯科特·史蒂文斯
/
的别名和的location
指令,请求/phpmyadminfile
实际上得到你/home/phpmyadminfile
。至于为什么问题中的配置不起作用,在我看来它是正确的,所以我怀疑还有另一个location
未显示的指令,该指令在不需要时匹配。在这种情况下,作为前缀的alias
结尾location
,nginx文档建议使用root /home;
代替。