WPML htaccess Redirect Rule After Switch From Query Parameter To Language Directory

Aleksandar WordPress, WPML 4 Comments

You’ve been using the WPML setting that adds a query parameter at the end of a URL to select the language
and now you want to switch to the setting where the languages are in directories?

From this setting: Language name added as a parameter (https://www.example.com?lang=fr – French)
To this setting: Different languages in directories ((https://www.example.com/ – English, https://www.example.com/fr/ – French))

Then the below redirect rule is for you. It safely redirects all old URLs to the new ones, after you did the switch.


Comments 4

  1. Thanks Aleksandar!!!

    Your rule has been very helpful to redirect urls with language parameters.


    1. Post
  2. Thanks for solution!
    But this thing also will break the /wp-admin/ part, because it contains lang=* when you switch language.

    working solution is

    RewriteEngine On

    # redirect from ?lang=nl to /nl/
    RewriteCond %{QUERY_STRING} \?lang=(..) [NC]
    RewriteCond %{REQUEST_URI} !wp-admin [NC]
    RewriteRule ^(.*\/)|^$ /%1/$1? [L,R=301]

    1. Post

Leave a Reply

Your email address will not be published. Required fields are marked *