#internal-link
#internal-link
Вопрос:
Интернет-магазин основан на операционной системе 2.2.0.0. На сайте установлен и корректно реализован ssl на всех уровнях.
Проблема в том, что ссылки на категории в выпадающих меню в заголовке остаются http://, который успешно перенаправляет с 301 на версию https: // при нажатии.
Это не лучший способ с точки зрения SEO, поэтому моя цель — просто изменить ссылки на https: // и иметь код ответа 200 для всех внутренних ссылок.
Код, который извлекает ссылки и устанавливает их в выпадающем меню, является:
<nav id="menu" class="navbar"> <!-- add class name as 'mega-menu'
LIKE class="mega-menu" -->
<div class="navbar-header collapsed" data-toggle="collapse" data-
target=".navbar-ex1-collapse"><span id="category" class="visible-xs"><?php echo $text_category; ?></span>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<?php //print_r($categories); ?>
<?php foreach ($categories as $category) { ?>
<?php if ($category['children']) { ?>
<li class="dropdown"><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
<div class="dropdown-menu">
<div class="dropdown-inner">
<?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?>
<ul class="list-unstyled childs_1 <?php if($category['column']<=1) echo 'single-dropdown-menu'; else echo 'mega-dropdown-menu'; ?>">
<?php foreach ($children as $child) { ?>
<!-- 2 Level Sub Categories START -->
<?php if ($child['childs']) { ?>
<li class="dropdown"><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a>
<div class="dropdown-menu">
<div class="dropdown-inner">
<?php foreach (array_chunk($child['childs'], ceil(count($child['childs']) / $child['column'])) as $childs_col) { ?>
<ul class="list-unstyled childs_2">
<?php foreach ($childs_col as $childs_2) { ?>
<li><a href="<?php echo $childs_2['href']; ?>"><?php echo $childs_2['name']; ?></a></li>
<?php } ?>
</ul>
<?php } ?>
</div>
</div>
</li>
<?php } else { ?>
<li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>
<?php } ?>
<!-- 2 Level Sub Categories END -->
Есть ли способ переписать все внутренние ссылки, чтобы они начинались с https: // вместо http://
В области администрирования операционной системы такой опции нет.
Насколько я могу видеть, магазин использует пользовательскую тему.
При необходимости я могу предоставить любой код.
Заранее спасибо!
Ответ №1:
Правильно закодированная тема должна использовать это из конфигурационных файлов, которых в OpenCart 2:
{web root}/config.php
{web root}/admin/config.php
Замените все экземпляры http на https, очистите все кэши и повторите попытку.
Если это не сработает, это означает, что ваша тема плохо закодирована, но не все потеряно, вы можете заменить «http: //» во всех файлах в папке темы на любую хорошую IDE (например, Notepad сделает это, я использую IDE под названием Kate, которая превосходна и делает это).
Ваша папка темы будет находиться по адресу:
{web root}/catalog/view/theme/{your theme name}
Вы можете заменить «http://» на «https: //» или, если вы, возможно, захотите вернуться к http в будущем, вы могли бы заменить «http://» просто на «//», который сообщает браузеру использовать тот же протокол, что и текущая страница, и поэтому является более гибким и динамичным.
Комментарии:
1. Спасибо за советы, но оба конфигурационных файла настроены правильно. Я также хотел вручную изменить http: // example.com/category на httpS: // example.com/category но в моих файлах нет таких URL-адресов. Я предполагаю, что где-то есть правило, которое выбирает путь или что-то в этом роде…
2. «Я предполагаю, что где-то есть правило, которое выбирает путь или что-то в этом роде» Если тема закодирована правильно, то она получит путь из файлов конфигурации. Если нет, то это, вероятно, будет жестко запрограммировано, что означает, что вам придется заменить http: // во всех файлах. «в моих файлах нет таких URL-адресов», поэтому, если вы искали «https» во всех файлах вашего сайта, а его там нет, вам следует выполнить экспорт базы данных и выполнить поиск в ней также «https».