2016-11-16 58 views
3

我在nginx上實現web服務器上的PHP框架沒有任何index.html,網頁工作正常,但一些腳本不工作,它說「500內部服務器錯誤「Nginx的重寫或內部重定向週期,同時內部重定向到「/index.html」

這裏的服務器日誌

二○一六年十一月一十六日11時08分38秒[錯誤] 2551#0:* 738重寫或內部重定向循環,同時在內部重定向到」 /index.html 「,客戶端:27.131.251.6,服務器:www.foreverstore.id,請求:」GET/kelontong/getKelontong HTTP/1.1「,主機:」192.168.70.86「

2016/11/16 11:09:20 [錯誤] 2551#0:* 746重寫或內部重定向週期,同時內部重定向到「/index.html」,客戶端:27.131.251.6,服務器:www.foreverstore.id ,請求:「GET/kelontong/getKelontong HTTP/1.1」,主機:「192.168.70.86」

2016/11/16 11:14:47 [error] 5500#0:* 4重寫或內部重定向週期while內部重定向到「/index.html」,客戶端:27.131.251.6,服務器:www.foreverstore.id,請求:「GET/department/HTTP/1.1」,主機:「192.168.70.86」

2016/11/16 11:14:48 [錯誤] 5500#0:* 6在內部重定向到「/index.html」時,重寫或內部重定向週期,客戶端:27.131.251.6,服務器:www.foreverstore.id,請求:「GET/department/getdepartment HTTP/1.1「,主機:」192.168.7 0.86「

2016/11/16 11:18:56 [error] 5518#0:* 4在內部重定向到」/index.html「時,重寫或內部重定向週期,客戶端:27.131.251.6,服務器:www .foreverstore.id,請求:「GET/department/getdepartment HTTP/1.1」,主機:「192.168.70.86」

2016/11/16 11:18:56 [error] 5520#0:* 8 rewrite or內部重定向週期內部重定向到「/index.html」,客戶端:27.131.251.6,服務器:www.foreverstore.id,請求:「GET/department/getdepartment HTTP/1.1」,主機:「192.168.70.86」

2016/11/16 11:21:35 [error] 5534#0:* 3在內部重定向到「/index.html」時重寫或內部重定向週期,client: 27.131.251.6,服務器:www.foreverstore.id,請求: 「GET /部門/ getdepartment HTTP/1.1」,主持人: 「192.168.70.86」

這是我的nginx的主機配置文件

server { 
listen 443 ssl http2; 

root /bwi/foreverstore.id; 
index index.html index.htm index.php; 


server_name www.foreverstore.id ; 
ssl_certificate /etc/nginx/ssl/foreverstore.crt; 
ssl_certificate_key /etc/nginx/ssl/foreverstore.key; 

location/{ 

    try_files $uri $uri/ /index.html; 
    # try_files $uri $uri/ =404; 
    # Uncomment to enable naxsi on this location 
    # include /etc/nginx/naxsi.rules 
} 

location /doc/ { 
    alias /usr/share/doc/; 
    autoindex on; 
    allow 127.0.0.1; 
    allow ::1; 
    deny all; 
} 

error_page 404 /404.html; 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
    root /usr/share/nginx/www; 
} 

location ~ \.php$ { 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
    fastcgi_intercept_errors on; 
    fastcgi_param MAGE_RUN_CODE default; 
    fastcgi_param MAGE_RUN_TYPE store; 
    } 
} 

如果你們知道如何解決這個問題,我會很樂意爲你效勞。

+0

我認爲原因是因爲一旦'$ uri'和'$ uri /'失敗,它會重定向到'/ index.html',然後它會再次運行'try_files',並失敗'$ uri'和' $ uri /'然後重定向到'/ index.html'。你得到圖片...嘗試將'/ index.html'改爲'/ index.php',這樣如果它在'$ uri'和'$ uri /'失敗,它將默認爲你的'\ .php $'塊 –

+0

我也嘗試過這種方法,但它仍然沒有解決我的問題,它只是重定向到我的主頁,我想要的是看到我的引擎正在像我的其他服務器(apache2) 像https://示例。 com/departmen/GetDepartment(它在apache2上顯示我的引擎) 但在nginx上,它只是錯誤/重定向到主頁 –

+0

如果它重定向到您的主頁,那麼您的初始問題重定向循環解決了,所以這是一個解決方案你的問題。任何超過你的東西都需要在你的後端進行配置,或者用更多的細節來提出一個新的問題來描述你想要達到的目標,你嘗試過的東西,你期望發生的事情以及實際發生的事情。 –

回答

1

我認爲try_files行應該像看:

try_files $uri $uri/ index.html;

+0

我已經使用該腳本,但它仍然沒有工作。我沒有使用任何HTML文件,只是PHP framewrok –

0

既然你不使用任何HTML文件,如你所說,改變你的根目錄塊:

location/{ 
try_files $uri $uri/ =404; 
} 

你有包括一個嘗試文件,以及在您的PHP塊,所以當它失敗它去那裏,而不是尋求重定向:

location ~ \.php$ { 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
    fastcgi_intercept_errors on; 
    fastcgi_param MAGE_RUN_CODE default; 
    fastcgi_param MAGE_RUN_TYPE store; 
    try_files $uri $uri/ =404; 
} 

既然你宣佈:error_page 404 /404.html;你也可以添加404位置:

location = /404.html { 
      root /usr/share/nginx/html/; 
      internal; 
    } 

這應該停止那些醜陋的重定向循環。