如何重定向 Ionic/website 中的子文件夹

How to redirect subfolders in Ionic/website

我目前有一个 ionic webapp,托管为 x url(例如 www.myApp.com)。我的应用程序有子文件夹,例如myApp.com/home 或 myApp.com/details。不幸的是,每当我刷新这些子文件夹中的任何一个时,我都会收到类似 'Cannot GET /home' 的错误(只有基础 URL/Domain 有效)。

如果可能,有没有办法在 Google 域上托管这些子文件夹(这样 GD 会自动将这些 link 重定向回 baes myApp.com link 如果它们被刷新)还是我需要在代码本身中做一些事情来完成这个?

编辑:我现在明白我必须使用我的网络服务器重新路由,这样我可以 return index.html 当用户刷新页面时 link例如(ionicSite.com/Page)。作为参考,我在下面包含了我的 server.js 文件:

var express  = require('express');
var app      = express();                               // create our app w/ express
var morgan = require('morgan');             // log requests to the console (express4)
var bodyParser = require('body-parser');    // pull information from HTML POST (express4)
var cors = require('cors');

// Server Redirection changes
const targetURL = "www.ambitia.org";
const path = require ('path');

app.use(morgan('dev'));                                         // log every request to the console
app.use(bodyParser.urlencoded({'extended':'true'}));            // parse application/x-www-form-urlencoded
app.use(bodyParser.json());                                     // parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
// app.use(methodOverride());
app.use(cors());

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header('Access-Control-Allow-Methods', 'DELETE, PUT');
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.use(express.static('www'));
app.set('port', process.env.PORT || 5000);

app.get('/home', (req,res) => {
  console.log('You asked for my home!');
  res.sendFile(path.resolve('/main-es2015.js'));
})

/**
app.get('/*', (req, res) => {
  ('Attempting the redirection goal');
  res.sendFile(path.resolve(__dirname));
}) **/

app.listen(app.get('port'), function () {
  console.log('Express server listening on port ' + app.get('port'));
});

如果我没理解错的话,你需要告诉你的服务器它应该将请求重定向到你的 index.html 以便 Ionic 可以处理路由。

在 Apache 上,您可以在根文件夹中添加一个 .htaccess 文件,内容如下:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

来源:https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations