私は Web サイトのコンテンツが Apache サーバーの背後にある PHP(CodeIgniter) に基づいているプロジェクトに取り組んでおり、今後のモバイル バージョンのアプリの API として node.js を作成することが私の義務です。(注意してください、私たちのホスティングは管理されています。virtualhost にアクセスできないため、proxypass を使用することはできません)
「ドメイン名/api」のような URL で、ノード ファイルを Apache の背後で実行する必要があります。上記の URL が呼び出されると、Apache はこの要求をノードが存在する localhost:port にブリッジする必要があります。
ここに私のnode.jsファイルがあります:
var fs = require('fs');
var http = require('http');
var app = require('express')();
var options = {
};
app.get('/', function (req, res) {
res.send('Hello World!');
});
http.createServer( app).listen(61000, function () {
console.log('Started!');
});
ここに私の .htaccess ファイルがあります:
RewriteEngine on
RewriteRule ^$ /index.php [L]
RewriteCond %{HTTP_HOST} !^ourdomainname\.com
RewriteRule (.*) http://ourdomainname.com/$1 [R=301,L]
RewriteCond $1 !^(index\.php|info.php|resource|system|user_guide|bootstrap|robots\.txt|favicon\.ico|google<somevalues>.html)
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteRule ^/api$ http://127.0.0.1:61000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/api/(.*)$ http://127.0.0.1:61000/$1 [P,L]
ノードはローカルで (マネージド ホスティング サーバー上で) 動作しますが (「lynx localhost:61000/」を呼び出して適切な出力を確認できます)、外部ローカルでは動作しません。「ourdomainname.com:61000/api」へのすべての呼び出しは、node.js ファイルではなく、CodeIgniter (PHP) に送信されます。
どんな助けでも大歓迎です。