我们从前年、去年开始就缩减了一些以前的多语言网站,将很少人访问的语言取消掉,取消语言后的跳转以前是在.htaccess中设置的,同事处理起来比较麻烦,现在干脆写了一段代码放在html.tpl.php的开头位置,从当前网址中分离出可能的语言代码,如果是已经取消的就301跳转到默认语言对应的网址去,PHP程序代码如下:
//jamesqi 2021-6-29 not availabled languages 301 redirect to default language $server_name = $_SERVER['SERVER_NAME']; $request_uri = $_SERVER['REQUEST_URI']; $request_uri_path1 = strtok($request_uri, "/"); $request_uri_path1 = strtok($request_uri_path1, "?"); //print "request_uri_path1 = $request_uri_path1, "; //可能的语言路径 $request_uri_path2 = substr($request_uri, strlen($request_uri_path1) + 1); //print "request_uri_path2 = $request_uri_path2, "; //'/5/edit?destination=admin/content'//可能的默认语言路径 $language_list_predefined_array = array_keys(_locale_prepare_predefined_list()); //print_r($language_list_predefined_array);//所有预定义语言 $language_list_added_array = array_keys(language_list()); //print_r($language_list_added_array);//添加的语言 $language_list_enabled_array = array_keys(language_list('enabled')[1]); //print_r($language_list_enabled_array);//开启的语言 if ((in_array($request_uri_path1, $language_list_predefined_array) || in_array($request_uri_path1, $language_list_added_array)) && !in_array($request_uri_path1, $language_list_enabled_array)) { $location_url = "https://{$server_name}{$request_uri_path2}"; //print "location_url = $location_url, "; header("Location: $location_url", TRUE, 301); exit; }
注意如果有amp版本,还需要把amp版本的html.tpl.php也做一样的修改。
评论2
祁老师
祁老师 请问adsense广告在没有广告显示的时候不能自动收起 这样就会出现很大一个空白区域 怎样才能避免呢?你好,在另一个页面中回答了:“这个问题还没有好的办法解决”
你好,在另一个页面中回答了:“这个问题还没有好的办法解决”。