URL 在生产环境中不起作用 - return 404

URLs don't work within production - return 404

这个问题似乎有据可查,但人们在 post 上建议的所有解决方案都不适合我:/

我通过应用

设法修复了 urls 在我的本地主机上给出 404

--历史-api-回退

到"scripts"package.json

然而,当我将制作转移到我的 apache2 设置时,任何 url 我手动输入或刷新 returns 404,现场导航工作正常。

例如,http://www.craftmc.net/ works but http://www.craftmc.net/login returns 404,尽管如果我在现场导航到它 url 工作。

我看到 post 说使用这个 .htaccess,

https://hastebin.com/alifavacil.apache

遗憾的是它没有用。 :/

有问题的导航 - https://hastebin.com/xevecefoda.xml

您需要配置 Apache 以在它应该处理的所有 URL 上为您的应用提供服务。

默认情况下,Apache 只会在用户请求应用程序所在的特定路径时为您的应用程序提供服务,例如 www.example.com

如果您现在尝试访问 www.example.com/user/123,Apache 将尝试在 "user" 文件夹中查找名为“123.html”的文件。您必须告诉 Apache 它应该做的是回复您的应用程序,即使浏览器请求的路径实际上并未指向服务器文件系统中的您的应用程序。

您可以通过多种方式完成此操作,但最常见的方式是使用 mod_rewrite。例如,您可以尝试以下几行:

DocumentRoot "/var/www/example.com"
AliasMatch "^/myapp" "/opt/myapp-1.2.3"
<Directory "/opt/myapp-1.2.3">
    RewriteEngine On
    RewriteBase "/myapp/"
    RewriteRule "^index\.html$"  "welcome.html"
</Directory>

有关 mod_rewrite 及其使用的各种指令的更多信息,请参阅 the documentation、and/or google。