Я пытаюсь настроить 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
?