IIS Rewrite Wordpress用户身份验证

问题描述:

我希望能够在IIS 7中使用url重写来重写url,只要匿名用户击中我的wordpress站点的主页。有没有办法确定用户是否登录或不是重写规则的条件?IIS Rewrite Wordpress用户身份验证

原来,这可以通过检查cookie来完成。在我的情况下,我检查HTTP_COOKIE是否包含文本'wordpress'。如果没有,那么我将重写为我的页面的缓存版本。

我还包括一个检查,以确保我们在www子域名,以避免与URL在mydomain.com上运行时,我的重写规则的另一个冲突。

<rule name="HomePageCacheRewriteRule" patternSyntax="ECMAScript" stopProcessing="true"> 
    <match url="^$" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{HTTP_COOKIE}" negate="true" pattern="wordpress" /> 
     <add input="{HTTP_HOST}" pattern="www.mydomain.com" /> 
    </conditions> 
    <action type="Rewrite" url="cached-home-page.htm" /> 
</rule> 

结果是匿名用户获得缓存页面,而登录/最近注销的用户看到由Wordpress加载的标准页面。

注意:还有一些额外的检查可能会被添加来处理一些其他情况。这里有一个很好的文章,其中有一个更强大的例子http://ruslany.net/2008/12/speed-up-wordpress-on-iis-70/