4 일 전, laravel 5.1 앱을 nginx로 하위 디렉토리에서 작업하려고합니다. 0부터 시작하여 약간의 진전이 있지만 laravel이 하위 폴더에 속해 있으며 '/'를 제외한 모든 경로가 예상대로 작동하지 않는다는 것을 이해하지 못하는 것 같아서 지금은 갇혀 있습니다.Laravel 5.1은 nginx에 설정된 문서 루트를 사용하지 않는 것 같습니다
nginx conf의 잘못된 구성 또는 laravel의 무언가를 다시 작성하기 때문에이 문제가 발생하는지 이해하려고합니다. 여기
/srv/http --> Web servers' root
/srv/http/finics --> Laravel's public folder (is a symlink to /srv/laravel/public)
은/finics 위치의 nginx에서 각각의 설정입니다 : 모두의
먼저 내 디렉토리 트리입니다.
location /finics/ {
root /srv/http/;
try_files $uri $uri/ @laravel;
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_intercept_errors on;
}
}
location @laravel {
rewrite /finics/(.*)$ /finics/index.php?/$1 last;
}
location ~ \.css$ {}
location ~ \.js$ {}
}
규칙 및 try_files를 다시 작성하는 데 이미이 사이트 및 디지털 바다와 같은 다른 포럼에서 제안한 모든 내용을 시도해 보았습니다.
그들 중 일부는
try_files $uri $uri/ /index.php?$query_string;
try_files $uri $uri/ /finics/index.php?$query_string;
rewrite ^/finics/(.*)$ /finics/index.php$query_string;
try_files $uri $uri/ /finics/index.php$is_args$args;
을하지만 그들 중 누구도 실제로 일을하지 않습니다.
그래서 문제는 앞에서 말했듯이/(domain.net/finics/) 경로 만 작동하고 있다는 것입니다. 앱의 메뉴 링크를 클릭하여 나를 가입으로 전환하면 domain.net/accessions으로 리디렉션되고 domain.net/finics/access에는 리디렉션되지 않습니다. 그래서 내가 쓴 것은 laravel이 어떤 문서 루트가 속해 있는지 이해하지 못하는 것입니다. 물론 똑같은 일이 일어나고 있으며 모든 POST 요청이 있습니다.
나에게 해결책이 쉽지는 않지만 뭔가 생각할 필요가 없다는 것을 말해주었습니다.
왜 이런 일이 일어나고 있는지, 그리고 그것을 고치기위한 힌트가 있다면 매우 감사 할 것입니다.
을 볼 수있다? – tkausl
정확히 무엇을 의미합니까? 내 경로 또는 href 값? – Tease
링크가 생성되는 템플릿 – tkausl