我正在尝试设置萤火虫三世在我的 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
?