重写规则,但忽略目录的第一部分?

时间:2019-03-09 22:17:25

标签: node.js apache .htaccess

我花了2个小时,但我无法弄清楚,也不知道如何用Google搜索解决方案。

这是我的.htaccess文件中的重写规则:

RewriteCond %{REQUEST_URI} ^/blog(.*)
RewriteRule ^(.*) http://localhost:2368/$1 [P]

当我致电example.com/blog时,它应该将我重定向到我的博客。该博客是在nodejs(端口2368)中运行的幽灵博客。

当我不使用任何条件时,这将起作用。因此,我可以在example.com上看到博客的主要站点。

http://example.com/xy => http://localhost:2368/xy

但是有了条件和规则,似乎发生了这种情况:

http://example.com/blog/xy => http://localhost:2368/blog/xy

但是我不希望它重定向到http://localhost:2368/blog/xy。它可以重定向到http://localhost:2368/xy

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您要寻找的规则是:

RewriteCond %{REQUEST_URI} ^/blog/(.*)
RewriteRule ^blog/(.*) http://localhost:2368/$1 [P]

$1来自RewriteRule语句,而不来自RewriteCond。因此$1包含blog/xy而不只是xy

您可以在此处检查规则:.htaccess tester