Возникли проблемы с настройкой следующей настройки с помощью nginx:
- example.com
- example.com / gb / en
Этосайты laravel и gb / en - это первое из того, что будет добавлено.Root работает с obvs, но я не могу заставить / gb / en указать папку / gb / en / public.
Я пробовал несколько вещей, но это мой текущий файл conf:
server {
listen 80;
listen [::]:80;
server_name www.example.com;
root /home/forge/www.example.com/public;
ssl_protocols TLSv1.2;
ssl_ciphers TEST;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparams.pem;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /gb/en {
root /home/forge/www.example.com/gb/en/public;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/www.example.com-error.log error;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Вы можете видеть там блок моего местоположения, который я пробовал различными способами, но безрезультатно.
Любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ:
Итак, я стал на шаг ближе, когда понял, что подпапки в URL также добавляются в корневой каталог:
location /gb/en/ {
root /home/forge/www.example.com/public;
try_files $uri $uri/ /public/index.php?url=$uri;
}
Итак, мои файлы находятся в / public / gb /ru / public, но приведенное выше разрешается в /public/gb/en/index.php
Как мне получить / gb / en / для разрешения public / gb / en / public / index.php?
Большое спасибо;)
РЕДАКТИРОВАТЬ:
Идея пришла ко мне внезапно - используйте символическую ссылку!Я поместил / gb / en в общую папку в отдельной папке, и это сработало;)