首页 > 解决方案 > 重写规则将查询字符串参数作为子域添加到 htaccess 中的 URL

问题描述

我正在尝试将谷歌登录集成到我的应用程序中。我有动态子域。据我所知,Oath 登录不支持通配符。因此,我在登录时发送状态参数,在该状态参数中,我正在传递域名和开发人员控制台我的来源和重定向为https://mydomain.zingapps.com。我将mydomain作为主要子域。

现在我可以成功登录了。但是在重定向时,我得到的 URL 为

https://mydomain.myapps.com/?state=testdomain&code=16 位代码

但我希望网址是这样的

    https://testdomain.myapps.com/account

在这里,我希望 state 参数在重定向后成为我的子域。

在 htaccess 中,我正在这样做。我知道它错了。我不知道该怎么做。

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^myapps\.
    RewriteCond %{QUERY_STRING} state=([a-z0-9]+)
    RewriteRule ^(.*)$ http://%1.mydomain.com/$1 [L]

谁能告诉如何实现这一目标?

标签: apache.htaccessurl-rewriting

解决方案


将此规则用作您的首要规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^mydomaon\.zingyapps\. [NC]
RewriteCond %{QUERY_STRING} (?:^|&)state=([^&]+) [NC]
RewriteRule ^/?$ http://%1.zingyapps.com/account?#!/sales [L,R=301,NE]

推荐阅读