Как перенаправить на определенный URL с помощью htaccess? - PullRequest
0 голосов
/ 06 июля 2019

Я развернул свой угловой и узловой проект на одном и том же хостинг-сервере. URL-адрес моего углового проекта - http://mysitedomain.com/myangularapp, а мой узел работает на http://103.21.90.6:61000.
Я перенаправляю все api url как http://mysitedomain.com/api на http://103.21.90.6:61000/
Я написал .htaccess следующим образом

RewriteEngine On
RewriteBase /
RewriteRule ^api$ http://103.21.90.6:61000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api/(.*)$ http://103.21.90.6:61000/$1 [P,L]  

Когда я нажимаю url http://mysitedomain.com/api, он работает нормально, означает, что он перенаправляется на сервер узла.
Но когда я нажимаю url http://mysitedomain.com/api/login,, выдает ошибку Cannot GET /login.
я думаю, что я что-то упустил в последней строке кода выше. Я устал от разных вещей, но они не работают.
Кто-нибудь может дать мне решение по этому вопросу.
Это мой главный серверный файл

const express = require('express');
const http = require('http');
const cors = require('cors');
const hostname = '103.21.90.6';
const port = 61000;
const api = require('./routes/api');
const app = express();  
app.use('/api',api);  
app.use(cors(corsOptions));  
app.get('/', function(req, res){
/*console.dir(req.hostname);
console.dir(req.ip);*/
res.send('Hello Admin API');
});  
app.listen(port,hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});   

А это мой файл API

const express = require('express');
const router = express.Router();
const mysql = require('mysql');
router.get('/', (req, res) => {
console.log('yeah its working');
res.send('From Api route');
});
router.get('/login', (req, res) => {
res.send('In Login API');return false;
});
/*End API */
module.exports = router;`

Ответы [ 2 ]

1 голос
/ 06 июля 2019

После большого количества использования другого решения у меня есть рабочее решение.
Я сделал следующие изменения в моем файле .htaccess.
от

RewriteRule ^api(.*)$ http://103.21.90.6:61000/$1 [P,L]

до

RewriteRule ^api(.*)$ http://103.21.90.6:61000/api/$1 [P,L]

Я только что добавил / API в URL

0 голосов
/ 06 июля 2019

насколько я понимаю вашу проблему, вы хотите развернуть приложение Angular в Apache, но Nodejs используется с Express или другим для веб-сервера.После, если вы хотите узнать, как развернуть приложение Angular в Apache здесь или здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...