.htaccess Wordpress和NodeJS一起运行

时间:2017-10-19 12:05:31

标签: node.js wordpress .htaccess routing centos7

我试图在旧的Wordpress网站上添加一个服务NodeJS实例的路由。 问题是我想在同一台服务器上运行Wordpress和Node.js,但是在不同的路由上。

Wordpress正在http://example.com

运行

节点正在此处运行http://example.com:61000/oferta-de-pret-traduceri

.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^/oferta-de-pret-traduceri$ http://127.0.0.1:61000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/oferta-de-pret-traduceri/(.*)$ http://127.0.0.1:61000/$1 [P,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

我不太了解Wordpress,也不知道.htaccess就像我应该在这种情况下一样,我不想把所有东西都搬到NGINX,除非我不得不这样做。

我希望我的Node.js实例在http://example.com/oferta-de-pret-traducerii上运行而不是在http://example.com:61000上运行。

如果我尝试访问http://example.com/oferta-de-pret-traduceri

,Wordpress也会出现404错误

希望有人遇到过这种情况并且有一个简单的解决方案。

非常感谢你!

1 个答案:

答案 0 :(得分:1)

使用ProxyPassMatch https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypassmatch

可能会更好

ProxyPassMatch "^/oferta-de-pret-traduceri$" "http://127.0.0.1:61000/$1"

mod_rewrite的文档说:

  

尽可能考虑使用ProxyPass或ProxyPassMatch   偏向于mod_rewrite。

如果您无法使用ProxyPass,请尝试以下规则:

RewriteRule ^oferta-de-pret-traduceri http://127.0.0.1:61000$1 [P,L]

我使用此工具测试:http://htaccess.mwl.be/

如果您的节点应用需要&#39; oferta-de-pret-traduceri&#39;要在URL中,您将需要此规则:

RewriteRule ^oferta-de-pret-traduceri http://127.0.0.1:61000/oferta-de-pret-traduceri$1 [P,L]