Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Сделать правильные внутренние ссылки на https


Recommended Posts

Всем привет! Помогите пжл в рещение проблемы, на форуме практически все проштудировал, что то попробовал так и не решил задачу.

Ситуация в следующем сделал ридерект с http на https, сайт стал доступен только по https, со всех запросов по http идет перенаправление и редирект на https это отлично с этим решили. Но внутренние ссылки товаров категорий, модулей отдаются по http, как мне сделать так что бы ссылки отдавались по https дабы избежать лишних редиректов. ниже приложил скрин для наглядности, что нужно. 

Прошу help me  :mellow:

 

 

post-685104-0-65454900-1465982502_thumb.jpg

Надіслати
Поділитися на інших сайтах


Проверьте ответ своего сервера $this->request->server['HTTPS']

Если не отдает - настройте

Должен отдавать 1 или on

Надіслати
Поділитися на інших сайтах

Проверьте ответ своего сервера $this->request->server['HTTPS']

Если не отдает - настройте

Должен отдавать 1 или on

Как я понимаю это в конфиге должно быть, если да, то там прописано 

// Store
if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
	$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
} else {
	$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
Надіслати
Поділитися на інших сайтах


 

Как я понимаю это в конфиге должно быть, если да, то там прописано 

// Store
if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
	$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
} else {
	$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");

Нет не конфиг, а именно ответ сервера

 

.htaccess

<IfModule mod_setenvif.c>	SetEnv HTTPS on</IfModule>
Надіслати
Поділитися на інших сайтах

В .htaccess пробывал переключить на on 404 ошибка на всех страницах. По совету обратился к хостеру у них переменная тоже включена. вот что они мне написали : 

 

Не совсем понимаю, в чём проблема?

<?php
echo 'Состояние переменной $_SERVER[\'HTTPS\']: ' . $_SERVER['HTTPS'];
?>

Результат здесь - https://qibiko.com/httpstest.php
Состояние переменной $_SERVER['HTTPS']: on

 

Вот в дабавок выкладываю .htaccess

ewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?qibiko\.com$ [NC]
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^(.*)$ https://qibiko.com/$1 [R=301,L]


# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Order deny,allow
 Deny from all
</FilesMatch>

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.qibiko\.com$ [NC]
RewriteRule ^(.*)$ https://qibiko.com/$1 [L,R=301]

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
#php_admin_value open_basedir none
php_value max_input_vars 31000
php_value display_errors 0
php_value display_startup_errors 0
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
Надіслати
Поділитися на інших сайтах


Да просто пропатчите seo_pro в методе rewrite

 

$component['scheme'] = 'https';

После $component = parse_url(str_replace('&', '&', $link));

  • +1 2
Надіслати
Поділитися на інших сайтах

Всем спасибо за отзывчивость, отдельная благодарность Марку за помощь в решение проблемы.

 

Да просто пропатчите seo_pro в методе rewrite

 

$component['scheme'] = 'https';

После $component = parse_url(str_replace('&', '&', $link));

После этого все встало на свои места, еще раз спасибо всем

Надіслати
Поділитися на інших сайтах


Приветствую всех! Возникла еще проблемка с этим протоколом https :ugeek: .

Ситуация в следующем, страницы категорий и товаров имеют правильный атрибут rel canonical на https, а вот главная cтраницы имеет вид 

<link href="http://mysite.com/" rel="canonical" />
 
как сделать так что бы был:
 
<link href="https://mysite.com/" rel="canonical" />
На скринах видно что с категориями все в порядке, не могу понять в какую сторону копать, толи в сео_про опять заглядывать, толи я с .htaccess что то делаю не так (его можно посмотреть выше в теме)
 

post-685104-0-69274600-1466150701_thumb.jpg

Надіслати
Поділитися на інших сайтах


Проблему решил долгими поисками по форуму, возможно кому то пригодиться, в файле конфиге прописал:

File: config.php                                                                                      

<?php
// HTTP
define('HTTP_SERVER', 'https://mysite.com/');
define('HTTP_CATALOG', 'https://mysite.com/');

// HTTPS
define('HTTPS_SERVER', 'https://mysite.com/');
define('HTTPS_CATALOG', 'https://mysite.com/');
  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 month later...

 

Приветствую всех! Возникла еще проблемка с этим протоколом https :ugeek: .

Ситуация в следующем, страницы категорий и товаров имеют правильный атрибут rel canonical на https, а вот главная cтраницы имеет вид 

<link href="http://mysite.com/" rel="canonical" />
 
как сделать так что бы был:
 
<link href="https://mysite.com/" rel="canonical" />
На скринах видно что с категориями все в порядке, не могу понять в какую сторону копать, толи в сео_про опять заглядывать, толи я с .htaccess что то делаю не так (его можно посмотреть выше в теме)

 

https://opencartforum.com/files/file/3272-seo-url-pro-fix-https/

Решает и эту проблему

  • +1 1
Надіслати
Поділитися на інших сайтах

Да просто пропатчите seo_pro в методе rewrite

 

$component['scheme'] = 'https';

После $component = parse_url(str_replace('&', '&', $link));

Уважаемый MarkiiMax, подскажите, возможно ли такое для seo url стандартного?

С отдельное спасибо за ваше бесплатное решение по https

Надіслати
Поділитися на інших сайтах


  • 1 month later...

po fix работает только на главную, остальные у меня работают и так и так

Это уже парафия редиректа htaccess с http на https

Надіслати
Поділитися на інших сайтах

  • 2 months later...
  • 1 year later...
В 16.06.2016 в 21:24, markimax сказал:

Да просто пропатчите seo_pro в методе rewrite

 

$component['scheme'] = 'https';

После $component = parse_url(str_replace('&', '&', $link));

 

Спасибо!

Данная строка помогла мне решить проблему работы JS, а именно кнопка "показать еще на странице категории товара" не работал скрипт подгрузки товара, браузер ругался на заблокированный контент. при отключение https все работало. неделю искал в чем причина, понятно было что в ssl но как решить проблему не мог понять.

 

Спасибо еще раз  markimax

Надіслати
Поділитися на інших сайтах


  • 3 months later...
  • 3 months later...
On 6/16/2016 at 9:24 PM, markimax said:

Да просто пропатчите seo_pro в методе rewrite

 

$component['scheme'] = 'https';

После $component = parse_url(str_replace('&', '&', $link));

 @markimax

 

Можете поподробнее?

Есть текст:

if ($component['scheme'] == 'https') {
            $link = $this->config->get('config_ssl');
        } else {
            $link = $this->config->get('config_url');
        }

А что и куда нужно вставить? Не очень понятно куда именно ставить $component = parse_url(str_replace('&', '&', $link));

Змінено користувачем gefestus
Надіслати
Поділитися на інших сайтах


  • 8 months later...
В 15.12.2018 в 16:46, gefestus сказал:

 @markimax

 

Можете поподробнее?

Есть текст:

if ($component['scheme'] == 'https') {
            $link = $this->config->get('config_ssl');
        } else {
            $link = $this->config->get('config_url');
        }

А что и куда нужно вставить? Не очень понятно куда именно ставить $component = parse_url(str_replace('&', '&', $link));

 

в версии ocStore 2.3 и выше, в файле seo_pro.php,(при включенном seo-pro естественно),

в функции (rewrite($link) после строки $component = parse_url(str_replace(‘&’, ‘&’, $link));)

вставить строку 

$component[‘scheme’] = ‘https’;

 

получится так,

$component = parse_url(str_replace(‘&’, ‘&’, $link));

$component[‘scheme’] = ‘https’;

--------------------------------------------------------------

 

После добавления строки, обязательно надо обновить модификаторы.

Надіслати
Поділитися на інших сайтах


В 17.06.2016 в 14:41, QbiQ сказал:

Проблему решил долгими поисками по форуму, возможно кому то пригодиться, в файле конфиге прописал:


File: config.php                                                                                      

<?php
// HTTP
define('HTTP_SERVER', 'https://mysite.com/');
define('HTTP_CATALOG', 'https://mysite.com/');

// HTTPS
define('HTTPS_SERVER', 'https://mysite.com/');
define('HTTPS_CATALOG', 'https://mysite.com/');

Спасибо, друг! Помогло!!!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.