提问人:D.H. 提问时间:10/31/2023 最后编辑:D.H. 更新时间:11/3/2023 访问量:32
重写 Apache2 路径以在使用位于 DocumentRoot 中的 FallbackResource 之前在子目录中查找
Rewriting Apache2 paths to look in a subdirectory before using a FallbackResource located in the DocumentRoot
问:
所以这个软件有一个 nginx 配置,看起来像这样:
location / {
try_files /static$uri /router.php?$args;
}
location /router.php {
include snippets/fastcgi-php.conf;
}
不幸的是,如果不考虑实际功能,这似乎不可能用 Apache2 实现,如果想要将软件部署在无法直接访问服务器的共享 Web 托管环境中,这会带来问题......
(有问题的项目是 ROllerozxa 和 SN76489/Compa 的“Cirrusboard”......
目前,我们(我和主要开发人员)让Apache与新路由器一起工作。FallbackResource router.php
但是,这会破坏所有静态资产,因为它们位于 static/ 中。
我不确定如何在不创建 RewriteRule 的情况下做到这一点,当我尝试创建 RewriteRule 时,它不起作用,它只是不断抛出 500 个错误。此外,它也不会使用 nginx 复制 1:1 的功能,即在考虑路由器 .php 之前,首先查看静态/中是否存在文件。将 DocumentRoot 作为静态目录也可能破坏事情,因为我认为您不能使用相对和/或绝对路径执行 FallbackResource(特别是如果我们考虑任何非自我管理的托管,例如共享主机,我们的项目非常考虑这一点)。
答:
0赞
D.H.
11/3/2023
#1
我们的主要程序员 (rollerozxa) 想通了,这在一定程度上要归功于 Kazz/7028432 在这里的评论
Options -Indexes
DirectoryIndex this-file-shouldnt-exist.txt
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/static/%{REQUEST_URI} -f
RewriteRule ^(.*)$ /static/$1 [END]
FallbackResource /router.php
非常感谢,希望有人发现它在未来 x3 中有用
评论
RewriteCond /static/%{REQUEST_URI} -f
location /router.php