我知道这一定是我错过的一些微不足道的事情。但是我在这里要过一个星期了,没有任何运气。
假设一个用户使用他的用户名访问我的旧网站,以访问他的控制面板。
例如
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,如果这是通过。
1条答案
按热度按时间b4lqfgs41#
会是这样吗?
%1是来自RewriteCond的第一个匹配项,而不是**$1**,因为它是来自RewriteRule的第一个匹配项。
请访问:https://httpd.apache.org/docs/2.4/rewrite/intro.html#regex