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/