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

时间:2018-12-15 18:21:26

标签: javascript reactjs react-router-v4 react-router-dom

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

我设法通过应用

修复了在我的本地主机上提供404的网址

-history-api-fallback

到“脚本”包。json

但是,当我将产品移至apache2设置时,我手动键入或刷新的任何URL都会返回404,在网站导航中效果很好。

例如,http://www.craftmc.net/可以工作,但是http://www.craftmc.net/login返回404,尽管如果我在网站上导航到该URL都可以工作。

我看到一则帖子说使用此.htaccess,

https://hastebin.com/alifavacil.apache

可惜的是它没有用。 :/

相关导航-https://hastebin.com/xevecefoda.xml

1 个答案:

答案 0 :(得分:0)

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

默认情况下,仅当用户请求应用程序所在的特定路径(例如www.example.com

)时,Apache才会为其提供服务。

如果您现在尝试访问www.example.com/user/123,Apache将尝试在“用户”文件夹中找到名为“ 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和/或google。