1

Я пытаюсь настроить Firefly III в подкаталоге моего веб-сервера. Другими словами: я хотел бы получить к нему доступ через https://www.example.com/firefly вместо того, чтобы быть в корне.

Вот моя конфигурация Apache SSL:

<VirtualHost _default_:443>
  DocumentRoot "/srv/http"
  Alias /firefly/ "/srv/firefly/public/"
  <Directory "/srv/firefly/public/">
    Require all granted
  </Directory>
</VirtualHost>

Кажется, это работает, но сайт (правильно) перенаправляет на страницу входа, example.com/firefly/login и это 404s:

192.168.1.1 - - [20/Feb/2019:21:57:18 -0500] "GET /firefly/ HTTP/1.1" 302 400
192.168.1.1 - - [20/Feb/2019:21:57:18 -0500] "GET /firefly/login HTTP/1.1" 404 1012

Насколько я понимаю, /login - это пользовательский маршрут, который должен обрабатываться приложением PHP, но я не знаю, как заставить его хорошо работать с моим псевдонимом.

Есть несколько инструкций nginx для настройки firefly в подкаталоге:

location ^~ /firefly-iii/ {
   deny all;
}

location ^~ /budget {
   alias /var/www/firefly-iii/public;
   try_files $uri $uri/ @budget;

   location ~* \.php(?:$|/) {
      include snippets/fastcgi-php.conf;
      fastcgi_param SCRIPT_FILENAME $request_filename;
      fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
      fastcgi_pass unix:/run/php/php7.2-fpm.sock;
   }
}

location @budget {
   rewrite ^/budget/(.*)$ /budget/index.php/$1 last;
}

Но я не уверен, как это будет переводить на Apache? Похоже, мне понадобится правило mod_rewrite в файле .htaccess ?

0