使用 Firefly III 设置 Apache 子目录别名

使用 Firefly III 设置 Apache 子目录别名

我正在尝试设置萤火虫三世在我的 Web 服务器的子目录中。换句话说:我希望通过它来访问它,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并且出现以下 404 错误:

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 应用程序处理的自定义路由,但我不知道如何让它与我的别名很好地配合。

在子目录中设置 Firefly 的一些 nginx 说明

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

相关内容