【问题标题】:Redirect ?lang=en string to subfolder /en重定向 ?lang=en 字符串到子文件夹 /en
【发布时间】:2014-09-16 14:05:24
【问题描述】:

我想做很多类似这种模式的重定向:

domain.com/xxx/?lang=endomain.com/en/xxx/

例如:

domain.com/about/?lang=endomain.com/en/about/

这会将所有链接*/?lang=en 重定向到一个目标。

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

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect http-status-code-301


    【解决方案1】:

    您可以在您的根.htaccess 中使用这些规则:

    RewriteEngine On
    
    RewriteCond %{THE_REQUEST} \s/+([^/]+)/\?lang=([^\s&]+) [NC]
    RewriteRule ^ /%2/%1? [R=302,L]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([a-z]{2})/([^/]+)/?$ $2/?lan=$1 [L,QSA]
    

    确保代码工作正常后,将 302 更改为 301

    【讨论】:

    • 失败:https://example.com/frNot Found,但 https://example.com/fr/index.php 有效。
    猜你喜欢
    • 2021-08-25
    • 2019-11-07
    • 1970-01-01
    • 2020-07-02
    • 2016-07-07
    • 2023-03-30
    • 2023-03-27
    • 1970-01-01
    • 2019-06-16
    相关资源
    最近更新 更多