簡體   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