【问题标题】:Rewrite index.php?lang=en to /en将 index.php?lang=en 重写为 /en
【发布时间】:2016-12-09 00:02:16
【问题描述】:

我在重定向单页多语言网站时遇到问题。我的 htaccess 重定向无法正常工作。我需要帮助如何做到这一点。当我在我的 htaccess 中添加这两行时:

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

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

【问题讨论】:

  • 你能把你的根目录里的东西贴出来吗?我目前不确定您是否希望它转到 mysite.com/en/index 或 mysite.com/index?lang=en
  • 感谢回复,我希望它把 mysite.com/index.php?lang=en 重写为新的 mysite.com/en。我只想要网站的非常干净的 seo url。我有两种语言,英语是第二语言。

标签: .htaccess redirect


【解决方案1】:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^(.*)$ index.php?lang=$1

RewriteRule ^[a-z]{2}$ index.php?lang=$1

如果您只想将其限制为两个小写字符。如果你没有使用mysite.com/xy形式的其他参数,那么你可以跳过RewriteCondition

也许也适用

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

让 Apache 只重写不存在的文件和文件夹。

【讨论】:

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