wordpress mod_rewrite主题重定向

时间:2010-09-13 22:18:57

标签: .htaccess mod-rewrite wordpress-theming wordpress

我为WordPress 3.0.1设置了一个插件“主题我的登录”,这使我的用户的个人资料页面在这里:

domain.com/login-2?action=profile

而不是在这里:

domain.com/profile

所以我试图用mod_rewrite修复它:

RewriteRule ^profile /login-2?action=profile

但似乎什么也没做。我怀疑在WordPress中发生了一些奇怪的事情,但是在我进一步挖掘之前,我想问一下这里的重写规则是否正确。我做得对吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,我认为WordPress在路由请求时使用REQUEST_URI的值。你的规则

RewriteRule ^profile /login-2?action=profile

...应正确地将/profile重写为/login-2?action-profile,但WordPress不会观察到此更改,因为PHP中$_SERVER[REQUEST_URI]的值基于发送到服务器的原始请求。

通过修改默认的WordPress永久链接块,让WordPress使用PATH_INFO,可以解决这个问题:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ index.php/$0

还可以使用P flag代理重写的请求,这将更新REQUEST_URI。它带来了创建新请求的开销,所以我不确定我是否会推荐它:

RewriteRule ^profile /login-2?action=profile [P]