Apache配置RedirectMatch参数,向其他人添加一个

时间:2016-08-12 10:32:15

标签: regex apache

我需要像这样转换网址: /fr-ca/home.html?titi=toto到/fr/home.html?titi=toto&country=ca 当然还是/fr-ca/home.htm /fr/home.html?country=ca

但它总是重定向到主页,删除页面。

我哪里错了?

    RedirectMatch 301 "^/([a-z]{2})-([a-z]{2})/(.*?)" "/$1/$3?country=$2"
    RedirectMatch 301 "^/([a-z]{2})-([a-z]{2})/(.*)" "/$1/$3&country=$2"

1 个答案:

答案 0 :(得分:1)

RedirectMatch指令在这里没有帮助,因为您希望在先前的查询字符串中添加新的查询参数。此功能仅在QSA模块中使用mod_rewrite标志时可用。

您可以使用:

RewriteEngine On

RewriteRule ^([a-z]{2})-([a-z]{2})/(.*)$ /$1/$3?country=$2 [L,QSA,NC,R=301]

QSA(查询字符串追加)标志在添加新查询参数时保留现有查询参数。

确保在测试前清除浏览器缓存。