【问题标题】:Hide URL parameter on Wordpress using .htaccess使用 .htaccess 在 Wordpress 上隐藏 URL 参数
【发布时间】:2018-12-08 15:53:14
【问题描述】:

我在 WordPress 上有这个网站,每个用户都有一个页面。

例如,链接是http://mywordpress.com.br/。但是每个用户都有自己的页面,即http://mywordpress.com.br/user/?id=username

我需要让这个页面看起来像 http://mywordpress.com.br/username ,但问题是,当有人在浏览器上键入 http://mywordpress.com.br/username 时,它需要重定向到 http://mywordpress.com.br/user/?id=username,但它必须显示 http://mywordpress.com.br/username

我已经阅读了很多关于此的主题,但我仍然无法弄清楚,我知道我必须更改 .htaccess,并且我尝试了许多不同的方法,但都没有奏效。

有人知道怎么做吗?

非常感谢

【问题讨论】:

    标签: wordpress .htaccess url parameters


    【解决方案1】:

    您可以使用重写引擎的 [P] 标志,以便您的请求被代理到另一个 url。这将在不更改浏览器 url 的情况下工作。您通过一个 url 请求一个资源,该资源将被代理到您的新 url,而用户没有机会知道这是被代理的。

    相同的代码是

    RewriteEngine On
    RewriteRule ^(.*) http://mywordpress.com.br/user/?id=$1 [NE,P,L]
    

    工作示例位于.htaccess tester

    我想建议使用 http://mywordpress.com.br/user/username 而不是 http://mywordpress.com.br/username 形式的 url,因为在基本级别编写重写规则也会捕获所有其他 url,例如 http://mywordpress.com.br/blog-post-title

    然后你可以修改重写规则如下

    RewriteEngine On
    RewriteCond %{REQUEST_URI} /user
    RewriteRule ^user/(.*) http://mywordpress.com.br/user/?id=$1 [NE,P,L]
    

    工作示例位于.htaccess tester

    【讨论】:

    • 嗨,感谢您的帮助,现在的问题是,当我尝试其中一个网址时(例如:/user/admin)我收到此错误:Bad Request Your browser sent a request that this server could not understand. Size of a request header field exceeds server limit. 你知道为什么会这样吗?无法修复..
    • 这是一个单独的问题。这可能是 cookie 的问题。尝试清除 cookie。更详细的答案可以访问stackoverflow.com/questions/10309751/…。重写规则解决了您提到的问题,因此请投票并接受答案,以便其他 SO 用户可以从中受益。
    猜你喜欢
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多