【问题标题】:How can i redirect /?lang=en to /en?如何将 /?lang=en 重定向到 /en?
【发布时间】:2019-11-07 22:16:30
【问题描述】:

我在将多语言网站重定向到一页时遇到问题。我对 htaccess 的重定向无法正常运行。我需要有关如何做到这一点的帮助。在我的 htaccess 中,当我添加这两行时

RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^ /en? [R=301,L]

重定向工作,但 mysite.com/en 显示 404 未找到。有人帮我解决这个问题吗?

【问题讨论】:

    标签: php .htaccess redirect mod-rewrite parameters


    【解决方案1】:

    您在问题中显示的重定向规则运行良好。 Bot 你还需要一个重写规则来处理/en

    RewriteEngine On
    
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteCond %{QUERY_STRING} ^lang=([a-z]{2})$
    RewriteRule ^ /%1? [R=301,L]
    
    RewriteRule ^([a-z]{2})/?$ ?lang=$1 [QSA,L]
    

    【讨论】:

    • 它对我有用,谢谢,而且我还有另外 3 种语言,我怎样才能将所有 3 种语言都用于这段代码?
    • 非常感谢先生,我的最后一个问题是,我的网站上有 3 种语言,俄语、英语和德语,所以如果我想将俄语重定向到 https://example.com,而没有 @987654324 @,我应该在这段代码中添加什么? p.s 德语和英语应该保持不变
    • @QuickBecko:最后一个要求将需要对此答案进行重大更改。请为ru 要求创建一个新问题,我一定会参加。
    【解决方案2】:

    如果您的浏览器最终访问 mysite.com/en,那么您的重定向确实有效,所以您的问题不是如何重定向,而是为什么您的网站上的 /en 没有内容。您需要对此进行调查。

    【讨论】:

      猜你喜欢
      • 2021-08-25
      • 1970-01-01
      • 2014-09-16
      • 2020-07-02
      • 2019-06-16
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多