我试图将所有从 /search-engine/* 开始的 URL 重定向到 /var/www/search-engine/dist,但结果显示未找到,我尝试使用 AliasMatch,如下所示
AliasMatch ^/search-engine(.*) /var/www/search-engine/dist
我使用的前端技术是 Angular。有人能告诉我我遗漏了什么吗?我也尝试过阅读 Apache2.4 的许多文档,但无法理解有助于实现结果的内容。
答案1
为什么不简单地
Alias "/search-engine" "/var/www/search-engine/dist"
当您想使用AliasMatch
文档提示时:
AliasMatch "^/search-engine(/|$)(.*)" "/var/www/search-engine/dist$1$2"
第一个括号匹配文件路径分隔符 ( /
) 或字符串结尾。接下来获取其后的所有内容。请注意,您必须使用 和 将它们粘贴到目录路径中$1
。$2
这在文档:
Alias
会自动将 URI 中除匹配部分之外的任何其他部分复制到右侧文件路径的末尾,而 则AliasMatch
不会。这意味着在几乎所有情况下,您都希望正则表达式从头到尾匹配整个请求 URI,并在右侧使用替换。
更新
检查文件权限/var/www/search-engine/dist/
。还要检查您是否正在运行 SELinux 或 AppArmor 或类似程序,并在需要时更新这些配置文件。