.htaccess 无法解决重写Map和htaccess问题,条件有问题吗?

vojdkbi0  于 2023-02-24  发布在  其他
关注(0)|答案(1)|浏览(98)

我知道这一定是我错过的一些微不足道的事情。但是我在这里要过一个星期了,没有任何运气。
假设一个用户使用他的用户名访问我的旧网站,以访问他的控制面板。
例如

foobar.example.com

会指引来访者

example.com/dashboard/12345

其中12345是foobar用户的用户ID。
这已经工作了很长时间。
然而,现在我把每个人都转移到一个新的服务器,新的软件和新的用户ID的
我有这个htaccess的设置

RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^(.*)$ https://www.newexample.com/profile/${zq3:$1|0} [L]

zq3用户Map查询只是...

RewriteMap zq3 "dbd:SELECT newuserid FROM rewrite_map WHERE username = %s"

查询工作正常。但是由于某种原因,当调用Map查询时,它总是返回0,这是如果找不到则返回此。
我认为重写规则有问题,它没有正确传递用户名。
任何帮助将不胜感激。哦,还有,想忽略www,如果这是通过。

b4lqfgs4

b4lqfgs41#

会是这样吗?

RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^(.*)$ https://www.newexample.com/profile/${zq3:%1|0} [L]

%1是来自RewriteCond的第一个匹配项,而不是**$1**,因为它是来自RewriteRule的第一个匹配项。

请访问:https://httpd.apache.org/docs/2.4/rewrite/intro.html#regex

相关问题