我正在位置指令“ / folder”中设置别名。别名指向“ / my / alias / path”。
当我导航到该位置内的网址时,例如“ mydomain.com/folder/destination”,指令名称位于请求的前面,该解析为 “ / my / alias / path / folder / destination”(不需要),而不是 “ / my / alias / path / destination”(期望)。
我可能丢失了一些东西,或者不太了解位置和别名的工作原理。
我已经尝试在location指令和别名中添加正斜杠,但这也不起作用。
这是我的位置指令:
public class Fibonacci
{
public static void main(String[] args)
{
for(int i = 1; i <= 10; i++)
{
System.out.println("Fibonacci(" + i + ") = " + Fibonacci(i));
}
}
public static long Fibonacci(int termNumber)
{
return (termNumber == 1) ? 0 : (termNumber == 2) ? 1 : Fibonacci(termNumber - 1) + Fibonacci(termNumber -2);
}
}
这就是我在error.log中看到的内容
location ^~ /folder {
alias /my/alias/path;
index index.php index.html index.htm;
location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(bin|SQL)/ {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /.well-known/acme-challenge {
allow all;
}
}
答案 0 :(得分:1)
该错误与.php
文件有关,很可能是php-fpm生成的,因为SCRIPT_FILENAME
的值设置不正确。
在snippets/fastcgi-php.conf
内,您可能将SCRIPT_FILENAME
设置为$document_root$fastcgi_script_name
,这与alias
指令不兼容。请改用$request_filename
。
例如:
location ^~ /folder {
alias /my/alias/path;
...
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
通过将fastcgi_param
语句放在include
语句之后,新值将无提示地覆盖不正确的值。