这是我的设置。
这是我的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^server/(.*)?$ http://127.0.0.1:3000/$1 [P,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我仍然无法从浏览器访问我的nodejs服务器或从我的脚本调用它(无论是ajax还是socket.io)
如果有人为这个问题找到了解决方法,我一直试图解决它而没有任何成功。
编辑:这是我的server.js
var express = require('express');
var path = require('path');
var mysql = require('mysql');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
var db = require('./db');
var operators = new Array;
// socket.io connection
io.on('connection', function(socket){
socket.emit('login', { operators: operators });
});
// Request chat button
app.get('/get_button/:key', function(req, res){
db.connect(function(err){ if (err){ throw err; } else { console.log('DB connected'); }});
db.query('select * from `wp_oboxchat_keys` where `key` = `' + req.params.key + '` limit 1', function(err, result) {
if (err) {
throw err;
} else {
res.sendFile(path.join(__dirname, '../', 'app/widget.html'));
console.log('DB successful query: get_button');
}
});
});
// Listen to server
server.listen(3000, function(){ console.log('Server started.'); });
服务器在我的控制台上使用node server.js运行时没有任何错误,但无法从Web浏览器访问它。
答案 0 :(得分:0)
这对我有帮助:
所以我不得不为子域配置它。假设 subdomain.domain.com 已链接到 public_html/ 内的 app/ 文件夹em> 文件夹。我使用终端访问在 app/ 文件夹中使用 pm2 运行 NodeJS 服务器(在端口 3000 上)。在 public_html/app/ 文件夹中,我添加了一个 .htaccess 文件,其中包含以下代码:
RewriteEngine on
RewriteRule (.*) http://0.0.0.0:3000/$1 [P,L]
DirectoryIndex disabled
就像一个魅力。添加注释:
您可以在每个文件夹中都有一个 .htaccess 文件。所以 public_html/test/ 文件夹正在运行一个 React 应用程序,所以它有自己的 .htaccess 文件,独立于 .htaccess 文件的一个目录。
.htaccess 文件中的地址也可以是 127.0.0.1:3000 或 localhost:3000。