使用重写保护登录页面

时间:2012-11-28 作者:kristina childs

我正试图偷偷摸摸地使用iis来保护wordpress登录页面(这不是我运行windows服务器的选择,但这是事实)。到目前为止,只有登录页面本身会在将您转发到管理面板之前加载自己,因此在成功(或不成功)登录后,第一条规则会启动并将您发送到虚拟页面。我目前的规则:

<rule name="redirect" patternSyntax="ECMAScript">
    <match url="^installbase/wp-login\\.php" />
    <action type="Rewrite" url="installbase/index.php?page=403-forbidden" />
</rule>

<rule name="login" patternSyntax="ECMAScript">
    <match url="^sneakyURLforLoggingIn" />
    <action type="Rewrite" url="installbase/wp-login.php" />
</rule>
1:我相信有一种更有效的方法

2: wordpress接受登录后,会将您发送到403页面,要求用户手动导航到/wp admin/。这不太理想。

关于如何解决这个第二十二条军规有什么想法吗?还是有更好的方法来完成同样的事情?

1 个回复
SO网友:Jesús Franco

您可以指示IIS提供给wp-login A.redirect_to 参数朝向wp-admin/; 这样就可以做到:

<rule name="login" patternSyntax="ECMAScript">
     <match url="^loginUrl/?" />
     <action type="Rewrite" url="wp-login.php?redirect_to={UrlEncode:http://{HTTP_HOST}/wp-admin/}" />
</rule>
顺便说一句,感谢您发布这个问题,它帮助我更好地理解IIS中重定向和重写的工作。我发现这个参考很有用:String functions in IIS Rewrite Module

结束