当前位置

Drupal 7取消语言后原网址跳转默认语言对应网址

James Qi 在 2021年6月29日 - 15:13 提交

我们从前年、去年开始就缩减了一些以前的多语言网站,将很少人访问的语言取消掉,取消语言后的跳转以前是在.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也做一样的修改。

自由标签:

评论

祁老师 请问adsense广告在没有广告显示的时候不能自动收起 这样就会出现很大一个空白区域 怎样才能避免呢?

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。