如何编写多站点登录的重写规则

时间:2013-07-23 作者:Totem

在我的wp multisite mysite中。com,我希望任何登录请求都发送到我在mysite的自定义登录页面。com/登录。我发现了这个重写规则:

RewriteRule ^(.*)/login/$ http://mysite.com/login/ [L]
它可以工作,但不会在用户登录后将其发送回上一页。上一页可能位于mysite上。com或mysite。com/子网站1。谢谢

1 个回复
SO网友:Totem

我建立了一个多站点,mysite。com由mysite组成。com/subsite1,mysite。com/子网站2。。。并使用主题我的登录插件。因为我希望所有的登录请求都发送到mysite。com/login,我找到了一个重写规则来实现:

RewriteRule ^(.*)/login/$ http://mysite.com/login/ [L,QSA,NE]
基本上,在我阅读和理解之后^(.*)/ 将在mysite中找到任何带有“login”的url。com和子网站,并将其重定向到mysite。com/登录。解释以下标志:http://httpd.apache.org/docs/current/rewrite/flags.html:

[L]标志会导致mod\\u rewrite停止处理规则集。在大多数上下文中,这意味着如果规则匹配,则不会处理更多的规则“有了[QSA]标志,对/pages/123?one=2的请求将映射到/page.php?page=123&one=2。没有[QSA]标志,相同的请求将映射到/page.php?page=123-也就是说,现有的查询字符串将被丢弃。”“使用[NE]标志可防止(特殊字符,例如&;和?)转换为其等效的十六进制代码。RewriteRule ^/anchor/(.+)/bigpage.html#$1[NE,R]。此示例将重定向/anchor/xyz到/bigpage.html#xyz。省略[NE]将导致将#转换为其等效的十六进制代码,%23,这将导致404找不到错误条件。”

这些规则的组合将用户发送到mysite。com/login,然后在登录后将其重定向到上一页。

我希望我的解释有帮助-;)

结束