不带参数的 HTACCESS 重写规则

HTACCES rewrite rules without parameters

我想从我的旧 url 进行 301 重定向:www.test.com/?page=mypage&lang=mylanguage

到新的www.test.com/mylanguage/mypage

我用的是这个:

RewriteCond %{QUERY_STRING} ^page=mypage&user_lang=lang$ [NC]
RewriteRule ^(.*)$ http://test.joskin.com/lang/mypage [R=301,L,NE]

但是当我点击我的旧 link 时,它会将我重定向到 http://test.joskin.com/lang/mypage?page=mypage&user_lang=lang

如何从我的新 url 中删除这些参数?

此致。

你们真的很亲密!改用这个:

RewriteCond %{QUERY_STRING} page=mypage&lang=mylanguage$ [NC]
RewriteRule ^(.*)$ http://test.joskin.com/lang/mypage? [R=301,L,NE]

我在这里所做的更改是在您重写的 URL 的末尾添加一个 ?。重定向的 URL 末尾的 ? 在那里,因此查询字符串不会再次出现在 URL 的末尾。

我从查询字符串中删除了 ^,不需要它。

我还更新了查询以匹配您在问题顶部显示的 URL。如果你想改回来,我会把它留给你。

确保在测试之前清除缓存。