我试图用php设置单页面应用程序。 index.php路由所有调用并使用javascript更新url。路由在我的本地机器上正常工作,但是当尝试去/ home或/ about时,Heroku会抛出404错误。
<?php
$request_uri = explode('?', $_SERVER['REQUEST_URI'], 2);
// Route it up!
switch ($request_uri[0]) {
// Home page
case '/':
echo "<script>history.pushState(null, null, \"$request_uri[0]\" + \"home\")</script>";
case '/home':
// About page
case '/about':
require 'views/templates/template.php';
break;
}
?>
我想要的只是自定义Heroku的路由。例如:&#34; / home&#34;和&#34; / about&#34;将路由回index.php。 Php的内置服务器通过将每个未找到的文件带回index.php来处理我想要的路由。
以下是我网站的链接:https://shen-an-calhar.herokuapp.com/
答案 0 :(得分:0)
我只是为同样的问题向其他人发布答案。我意识到在本地apache服务器上运行我的代码之后,我得到了相同的答案。 我在网上做了一些搜索,我发现了一个在apache上运行的解决方案:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
此代码需要驻留在根目录中的.htaccess文件中,以便路由工作。我不了解代码的每一部分,但它有效。