重写并组合wordpress的查询字符串

时间:2015-05-20 12:26:12

标签: php wordpress plugins url-rewriting

我正在使用两个具有不同语言查询字符串设置的插件。语言插件本身适用于 mydomain.com/?lang=english (polylang插件),另一个插件需要检索 mydomain.com/?language=english

我应该如何重写网址,以便两者都正常工作?我尝试过以下方法:

   function languagerewrite() {
     //$language = get_query_var('lang', 1); 
     //get_query_var not working, yet 'lang' is registered Why? 
       if(isset($_GET["lang"])) {
       $language = $_GET["lang"];

      echo esc_url(add_query_arg( 'language', $language ));
      }
    }
    add_action('init', 'languagerewrite', 10, 0);

这将回应以下内容: ?lang = english& language = english应该可以工作,虽然我需要将其重写为一个不错的网址。 如何使用打印的网址?这是在php中执行此操作的最佳方法,还是应该在htaccess中重写它?感谢。

1 个答案:

答案 0 :(得分:1)

使用这样的htaccess

RewriteEngine on
# two lines to avoid endless redirect. Although you may leave only 1st
RewriteCond %{QUERY_STRING} !lang(.+)language
RewriteCond %{QUERY_STRING} !langage(.+)lang
# Looking for lang or language and saving other get values
RewriteCond %{QUERY_STRING} ^(.+&|)lang(|uage)=([^&]+)(&.+|)$ 
RewriteRule ^(.+)$ /$1?%1lang=%3&language=%3%4 [L]

要尝试,请添加R - [R,L]以查看浏览器地址标签中的重定向