我试图在旧的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
希望有人遇到过这种情况并且有一个简单的解决方案。
非常感谢你!
答案 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]