2017-04-09 1 views
0

내 로컬에 Laravel의 valet을 사용하고 있습니다. 나는 나의 현지에서 이것에 문제가 없었다. 원격 서버에서 Ubuntu 16.04을 사용합니다. Nginx - 404 PHP 파일 리디렉션

나는 나의 웹 사이트의 루트에 같은 index.php 있습니다

<?php 

require __dir__ . '/src/core/bootstrap.php'; 
require __dir__ . '/src/controllers/index.php'; 

src/core/bootstrap.php하는 composerdatabases을위한 물건입니다. 그러나 이것은 src/controllers/index.php이 무엇이다 : 사용자가 site.com를 방문 할 때이 홈 페이지 이후

<?php 
session_start(); 

use App\UserTools\User; 
use App\Core\Router; 

$page = Router::load()->fetchPage(); 

include "src/controllers/{$page}.controller.php"; 
include "src/views/{$page}.view.php"; 

그래서, 그것은 main로 이동합니다. 예를 들어, 방문한 사람이 site.com/about 인 경우 $pageabout이고 비올라는 라우팅입니다. 이것이 Laracasts에서 나에게 모두 가르쳐 졌기 때문에, 이것이 초보적인 것 같으면 나를 용서해주십시오.

site.com/api을 방문하면 문제가 발생합니다. 빈 페이지 만 표시됩니다. 또는 book?id=1 빈 페이지가 표시됩니다.

location/{ 
    rewrite VALET_SERVER_PATH last; 
} 

는 어떻게 내 사이트에 있음을 적용 할 수 있습니다 또는 다음

를 찾을 수 없습니다 파일과는 어떤 서버를 알려줍니다 valet에서 nginx 블록은? 그것은 작동

server { 
    server_name www.site.org; 
    return 301 $scheme://site.org$request_uri; 
} 

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
    server_name site.org; 
    return 301 https://$server_name$request_uri; 
} 

server { 

    # SSL configuration 
    listen 443 ssl default_server; 
    listen [::]:443 ssl default_server; 
    include snippets/ssl-site.org.conf; 
    include snippets/ssl-params.conf; 

    root /var/www/html; 

    index index.php index.html index.htm index.nginx-debian.html; 

    server_name site.org; 

    location/{ 
     try_files $uri $uri/ /index.php; 
    } 

    location ~ /.well-known { 
     allow all; 
    } 

    location ~ \.php$ { 
     include snippets/fastcgi-php.conf; 
     fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    } 
} 

: 여기에 내 현재 nginx 블록 나는 /var/www/htmlVALET_SERVER_PATH 대체 시도했지만 난 그냥 서버 오류를 500

을 얻었다. 하지만 첫 페이지 만. 예, HTTPS를 사용하도록 설정했으며 www 트래픽이 non-www URI로 리디렉션됩니다.

답변

1

하면 다음과 같은 지침에 변경합니다 : 잘

location/{ 
    try_files $uri $uri/ /index.php$is_args$args; 
} 

location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
} 
+0

을, 어떻게 그것에 대해. 나는 무슨 일이 일어나고 있는지 보았다. 고맙습니다. – nn2