Нужно в коде поменять http на https

12
A3
На сайте с 23.12.2012
Offline
95
268

Хочу прописать  Canonical на сайте joomla, есть код, который надо разместить в шаблоне сайта, код работает, но выдает Canonical http://, а нужно https://.

Что нужно поменять в коде, чтобы заработало. Прошу особо тапками не кидаться. Спасибо.

Вот код 

<?php

//*****************************************************************

// CONCEPT-BR TOOL FOR ADDING CANONICIAL TAG IN JOOMLA 1.5 to 2.5

// VERSION: 0.2.3

// DATE: 02/2013

// CREATOR: JR

// ****************************************************************

// ****************************************************************

// SETTINGS SECTION

// ****************************************************************

$force_http_base = false; // set this to "true" will set canonical url starts with "http://...."

// ****************************************************************

// CODE - DON'T CHANGE ANYTHING FROM HERE !!!!

// ****************************************************************

// ensure helper

// =============

if(!class_exists('ContentHelperRoute')) require_once (JPATH_SITE . '/components/com_content/helpers/route.php');  

// get base url 

// ============

$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') === FALSE ? 'http' : 'https';

if($force_http_base) $protocol = "http"; 

$base_url = $protocol."://".$_SERVER['HTTP_HOST']; // comment this line out to force HTTP

// check if root path or no article (e.g. any extension is loaded) => nothing to do

// ====================================================

$url_parts = parse_url($_SERVER['REQUEST_URI']);

$clean_uri = $url_parts['path'];

if (strpos($clean_uri, "?") !== false) $clean_uri = reset(explode("?", $clean_uri));

// get current article id 

$article_id = JRequest::getVar('id');

$view = JRequest::getVar('view');

if($clean_uri != "" && $article_id > 0 && $view == 'article')

{

// get current menu url for canonical meta tag creation

// ====================================================

// get url for article

$link = JRoute::_(ContentHelperRoute::getArticleRoute($article_id, 0));

// set value

$canonical_value = $base_url.$link;

}

else if($clean_uri != "" && $article_id > 0 && $view == 'category')

{

// get current menu url for canonical meta tag creation

// ====================================================                                                

// get url for category

$link = JRoute::_(ContentHelperRoute::getCategoryRoute($article_id, 0));                                                          

// set value

$canonical_value = $base_url.$link;                                                                                         

}

else if($clean_uri == "")

{

// root dir => nothing to do. set base url

$canonical_value = $base_url;

}

else

{

//unknown state

$canonical_value = "";

}

if($canonical_value != "")

{

?>

<!--canonical tag-->

<link rel="canonical" href="<?php echo($canonical_value); ?>" /> 

<?php

}

?>


Shelton724
На сайте с 26.05.2011
Offline
242
#1

Вот эту строку:

$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') === FALSE ? 'http' : 'https';

закомментируйте, а под ней вставьте строку

$protocol = 'https';
David Warner
На сайте с 30.04.2024
Offline
1
#2

Hello

To translate a URL from HTTP to HTTPS in your code, you will need to rewrite a section where the variable $force_http_base is used. В данный момент у вас значение false, что означает, что протокол выбирается автоматически в зависимости от того, какой протокол используется сервером. If the web browser uses HTTP, then the канонических URL will be appended with http://.

In order to reliably implement HTTPS, independent of the server's hardware, you must:

Replace $force_http_base with true. This instructs the user to use the οротокол that was sent in at $protocol.
Seldom перед этой настройкой изменить $protocol на 'https'.
Now, let's see how this should appear in your code:

$force_http_base = true; // принудительное использование заданного протокола

$protocol = 'https'; // принудительное использование HTTPS

Эти изменения гарантируют, что независимо от настроек сервера или текущего протокола соединения, канонические URL будут всегда начинаться на https:// .

Regards

David Warner

Purva Aerocity

My name is David Warner, and I work at Purva Aerocity, an ambitious new project by Provident Group, which is situated in Chikkajala, North Bangalore. My professional background includes a variety of real estate development areas, with a focus on incorporating contemporary living solutions into environmentally friendly settings. The goal of the futuristic prelaunch residential project Purva Aerocity is to raise the bar for urban life. Situated in the rapidly developing neighborhood of Chikkajala, North Bangalore, this project aims to serve as a model of contemporary architecture and sustainable design. Here are a few of Purva Aerocity's salient characteristics:
A3
На сайте с 23.12.2012
Offline
95
#3
Shelton724 #:

Вот эту строку:

закомментируйте, а под ней вставьте строку

Спасибо, но теперь выдает только адрес статьи без домена и без http.

A3
На сайте с 23.12.2012
Offline
95
#4
David Warner #:

Hello

To translate a URL from HTTP to HTTPS in your code, you will need to rewrite a section where the variable $force_http_base is used. В данный момент у вас значение false, что означает, что протокол выбирается автоматически в зависимости от того, какой протокол используется сервером. If the web browser uses HTTP, then the канонических URL will be appended with http://.

In order to reliably implement HTTPS, independent of the server's hardware, you must:

Replace $force_http_base with true. This instructs the user to use the οротокол that was sent in at $protocol.
Seldom перед этой настройкой изменить $protocol на 'https'.
Now, let's see how this should appear in your code:

$force_http_base = true; // принудительное использование заданного протокола

$protocol = 'https'; // принудительное использование HTTPS

Эти изменения гарантируют, что независимо от настроек сервера или текущего протокола соединения, канонические URL будут всегда начинаться на https:// .

Regards

David Warner

Purva Aerocity

Спасибо, но теперь выдает только адрес статьи без домена и без http.


Нужно в коде поменять http на https - Веб-строительство - Сайтостроение - Форум об интернет-маркетинге
Нужно в коде поменять http на https - Веб-строительство - Сайтостроение - Форум об интернет-маркетинге
  • 2024.02.12
  • searchengines.guru
Хочу прописать Canonical на сайте joomla, есть код, который надо разместить в шаблоне сайта, код работает, но выдает Canonical http://, а нужно...
WebAlt
На сайте с 02.12.2007
Offline
251
#5
if($force_http_base) $protocol = "http";
W1
На сайте с 22.01.2021
Offline
289
#6
WebAlt #:

http заменить на https

Плюс к этому включить принудиловку:
$force_http_base = true; 

Выше об этом уже написали (правда, слишком длинно и бестолково), но у ТС это почему-то вызвало дополнительные проблемы. Наверное, что-то не так сделал.

Мой форум - https://webinfo.guru –Там я всегда на связи
A3
На сайте с 23.12.2012
Offline
95
#7
webinfo #:

Плюс к этому включить принудиловку:
$force_http_base = true; 

Выше об этом уже написали (правда, слишком длинно и бестолково), но у ТС это почему-то вызвало дополнительные проблемы. Наверное, что-то не так сделал.

Если не сложно, ткните пальцем где исправить. Этот скрипт работает, но на выходе http://, меняю на что советуют, получается и без https// и без домена, только ссылка на статью. Буду благодарен.

W1
На сайте с 22.01.2021
Offline
289
#8
alan303 #:
Если не сложно, ткните пальцем где исправить.

Написали же уже выше.

Эту строку написать так:

$force_http_base = true; 

И ниже по коду так:

if($force_http_base) $protocol = "https";
A3
На сайте с 23.12.2012
Offline
95
#9
webinfo #:

Написали же уже выше.

Эту строку написать так:

И ниже по коду так:

А эту строку надо комментировать?

$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') === FALSE ? 'http' : 'https';
W1
На сайте с 22.01.2021
Offline
289
#10
alan303 #:

А эту строку надо комментировать?

Нет.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий