繁体   English   中英

Nginx别名和try_files子文件夹不起作用

[英]Nginx alias and try_files to subfolder doesn't work

当我将我的php文件放在/ home / tim_test中时,它工作正常

当我将文件放在/ home / tim_test / hmm中时,它不起作用。 为什么不?

server {

    listen 80;
    root /home;
    index index.php;

    location /admin {

        alias /home/admin/;
        try_files $uri $uri.html $uri/ /home/admin/;
        index index.html index.htm index.php;

    }

    location /tim_test/ {

        alias /home/tim_test/;
        try_files $uri $uri.html $uri/ /home/tim_test/;
        index index.html index.htm index.php;

    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        location ~ \.php$ {

            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;

        }     

}

我尝试编辑文件以使其看起来像这样以反映文件夹更改,但是它不起作用,当我在浏览器中访问/ tim_test时,我被禁止使用403

location /tim_test/ {

    alias /home/tim_test/hmm/;
    try_files $uri $uri.html $uri/ /home/tim_test/hmm/;
    index index.html index.htm index.php;

}

谢谢! 我好难过 我尝试了100多次nginx重新启动和其他操作。

编辑:如果我在chrome上去,则找不到404,我认为我在firefox上只得到403,因为我尝试了很多次。 无论哪种方式,它都不起作用。

关于aliastry_files指令, nginx上存在一个非常古老的开放错误

关于第一个配置文件,不需要两个alias指令,因为两个位置块都继承root的值并附加位置的值。

另外, try_files指令的最后一个元素( /home/admin//home/tim_test/ )也不是URI。

第一个配置文件应为:

root /home;
location /admin {
    try_files $uri $uri.html $uri/ /admin/;
    index index.html index.htm index.php;
}
location /tim_test/ {
    try_files $uri $uri.html $uri/ /tim_test/;
    index index.html index.htm index.php;
}

关于子文件夹hmm 除了try_files指令的最后一个元素(上面已解决)外,配置看起来还不错。 这意味着该问题可能与alias / try_files交互有关。

alias替代方法是内部重写,但是将目标URI放在源URI的名称空间中可能会使解决方案不必要地困难。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM