Node JS сервер на Shared Hosting - на указанном c порту с использованием .htaccess - PullRequest
0 голосов
/ 04 февраля 2020

Кажется, наконец-то я нашел фрагмент кода .htaccess, который позволяет запускать сервер Node JS на порте общего хостинга не: 80.

С https://medium.com/@mayomi1 / how- to-host-a- node-js -app-on-shared-host-52e12a62a259

#Open Port
RewriteRule ^$ http://127.0.0.1:XXXX/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:XXXX/$1 [P,L]

Кажется, что работает, за исключением того, что он перенаправляет ВСЕ traffi c, порт: 80 включен в Node Server на: XXXX

У меня есть несколько дополнительных строк в .htaccess, одна для преобразования http в https, другая для обработки несуществующих путей (go в / specicsubfolder /, передача несуществующая часть пути как ха sh)

RewriteEngine On
RewriteBase /specificsubfolder/
#http to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
#redirect non-existant path
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ \#$1 [L,R=301,NE]

Что я надеюсь сделать (Мой gr asp из .htaccess очень ограничен):

Traffi c на порту: 80 - игнорировать сервер Node JS и выполнить перенаправление / ha sh вещь

Traffi c на порту: XXXX - игнорировать порт 80 -рутирование выше. Обрабатывать через Node-сервер.

1 Ответ

0 голосов
/ 04 февраля 2020

Отвечая на мой собственный вопрос. Снова, все еще изучая .htaccess, и в настоящее время едва понимая, что означают биты кода, но вот решение проблемы, поставленной выше, которая, кажется, работает (цель здесь состоит в том, чтобы один файл .htaccess обрабатывал несколько вещей в таким образом, чтобы они не противоречили друг другу):

RewriteEngine On
RewriteBase /specificsubfolder/

#http to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]

#trigger that requests to a nonexistent file called 'srvr'
#opens port XXXX re-routes traffic to the node server listening there.
RewriteCond %{REQUEST_FILENAME} srvr
RewriteRule ^(.*)$ http://127.0.0.1:XXXX/$1 [P,L]

#redirect for all non-existant paths other than to 'srvr'
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ \#$1 [L,R=301,NE]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...