我有一个插件“主题我的登录”为WordPress 3.0.1,这会导致我的用户的个人资料页面在这里:
domain.com/login-2?action=profile
而不是这里:
domain.com/profile
因此,我尝试使用mod_rewrite修复它,如下所示:
RewriteRule ^profile /login-2?action=profile
但它似乎什么也做不了。我怀疑这是在WordPress中发生的一些奇怪的事情,但在我深入研究之前,我想问问这里的人们,我的重写规则看起来是否正确。我做得对吗?
发布于 2010-09-15 12:23:32
默认情况下,我相信WordPress在路由请求时会使用REQUEST_URI的值。你的规则
RewriteRule ^profile /login-2?action=profile...should正确地将/profile重写为/login-2?action-profile,但是WordPress不会观察到这种变化,因为PHP中$_SERVER[REQUEST_URI]的值是基于发送到服务器的原始请求的。
可以通过修改默认的PATH_INFO固定链接块让WordPress使用WordPress来解决此问题:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ index.php/$0还可以使用P flag代理重写的请求,这将更新REQUEST_URI。它带来了创建新请求的开销,所以我不确定我是否会推荐它:
RewriteRule ^profile /login-2?action=profile [P]https://stackoverflow.com/questions/3704846
复制相似问题