0 Пользователей и 1 Гость просматривают эту тему.
  • 19 Ответов
  • 681 Просмотров
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Адрес сайта без www
« : 21.11.2021, 09:42:33 »
помогите пожалуйста как сделать так чтоб сайт был доступен https://site.ru
сейчас все ссылки https://www.site.ru
Канонические ссылки ведут на   https://www.site.ru
Joomla! 3.9.24
VirtueMart 3.8.8 10472
php 7.3
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Адрес сайта без www
« Ответ #1 : 21.11.2021, 10:27:17 »
А в конфиге Joomla какое значение в $live_site ?
А вообще есть редирект на SSL ? В некоторых панельках есть функционал включения редиректа в настройках домена . Ну хотя бы так пробуйте
Код
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Re: Адрес сайта без www
« Ответ #2 : 21.11.2021, 10:36:20 »
в $live_site ?
public $live_site = '';
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Адрес сайта без www
« Ответ #3 : 21.11.2021, 10:40:45 »
Код
public $live_site = 'https://site.ru';
Но редирект нужен, иначе сайт будет открываться и по http
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Re: Адрес сайта без www
« Ответ #4 : 21.11.2021, 10:57:46 »
Но редирект нужен, иначе сайт будет открываться и по http
Прописал, у меня хостинг делает редирект  c http на https
Но проблема не решена  всё равно везде ссылки c www
Код
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Это просто редирект и он не работает.
Также это проблему не решает так как каноническая ссылка всё равно с www
также в коде <base href="https://www.site.ru/" />
Где-то в коде в адрес сайта добавляет www

*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Re: Адрес сайта без www
« Ответ #5 : 21.11.2021, 11:08:17 »
в шаблоне в файле index.php
прописал вверху $this->setBase(null);
Также настроил на хостинге Переадресовывать все запросы:
с site.ru
Это помогло убрать перелинковку на товары, категории  на беp www (site.ru)
Но канонические ссылки всё равно идут  с www, также в микроразметке тоже все товары с www
Модуль для микроразметки стоит Google Structured Data
В настройках указан сайт без www
Модуля или плагина для канонических ссылок нету
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Адрес сайта без www
« Ответ #6 : 21.11.2021, 11:12:49 »
Доброго Дня !
Вам же написали решение!
Как вариант - Вы можете к хостеру обратится - и Вам решат - это за долю секунды -- нужно только подождать ответ !!
Но может там обрабатывается каким - то плагом который добавляет вам в ссылку www - то и это можно обойти ! - В обще не вопрос !
- Хотите (если нужно ) -- я расскажу как !!
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Адрес сайта без www
« Ответ #7 : 21.11.2021, 11:40:15 »
в шаблоне в файле index.php
прописал вверху $this->setBase(null);
Также настроил на хостинге Переадресовывать все запросы:
с site.ru
Это помогло убрать перелинковку на товары, категории  на беp www (site.ru)
Но канонические ссылки всё равно идут  с www, также в микроразметке тоже все товары с www
Модуль для микроразметки стоит Google Structured Data
В настройках указан сайт без www
Модуля или плагина для канонических ссылок нету
Если --
-- Это только добавляет - к моему предположению  !
Что работает плаг -- который Вам дописывает ! - то что не нужно -- хотя сам плаг -- думает что это нужно !
А можно все включенные плагины из директории /plugins/system
---------------
Мы можем посмотреть !!
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Адрес сайта без www
« Ответ #8 : 21.11.2021, 11:43:38 »
Та и в обще -- Хотите  - могу найти ! - и далее на ваше усмотрение ! ) что делать !
skype : agroparknew
 
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Адрес сайта без www
« Ответ #9 : 21.11.2021, 11:45:37 »
В VirtueMart- Магазин какой URL ?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Адрес сайта без www
« Ответ #10 : 21.11.2021, 11:49:57 »
В VirtueMart- Магазин какой URL ?
Доброго Дня draff - Не думаю - что именно тут !! - так как ->
Это помогло убрать перелинковку на товары, категории  на беp www (site.ru)
Но канонические ссылки всё равно идут  с www, также в микроразметке тоже все товары с www
:(
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Адрес сайта без www
« Ответ #11 : 21.11.2021, 11:53:59 »
Там 90 процентов - что то потом - после рендеринга страницы - что то допаивает -
Вы что - человек облазил весь магаз + сайт - и не нашел ! --
Я еще раз говорю давайте посмотрим  !
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Re: Адрес сайта без www
« Ответ #12 : 21.11.2021, 12:21:55 »
иректории /plugins/system
---------------
Domain   www.site.ru - но отредактировать не могу, а базе данных искал по поиску не находит
сли --
-- Это только добавляет - к моему предположению  !
Что работает плаг -- который Вам дописывает ! - то что не нужно -- хотя сам плаг -- думает что это нужно !
А можно все включенные плагины из директории /plugins/system
Спасибо поищу.
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Адрес сайта без www
« Ответ #13 : 21.11.2021, 12:37:45 »
Цитата: draff от Сегодня в 11:45:37

    иректории /plugins/system
    ---------------

Domain   http://www.site.ru - но отредактировать не могу, а базе данных искал по поиску не находит
Не понял ?
 Если в В VirtueMart- Магазин  URL с www, то какой еще плагин вы будете искать ?
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Re: Адрес сайта без www
« Ответ #14 : 21.11.2021, 12:49:20 »
Если в В VirtueMart- Магазин  URL с www, то какой еще плагин вы будете искать ?
Как мне сделать чтоб было без www??
в index.php?option=com_virtuemart&view=user&task=editshop указана ссылка без www
https://site.ru
В базе данных нет http://www.site.ru
остаётся только файлы нов файлах конфига нет где указывается сайт
По поводу плагина.
в    Система - SEF - там
Основной домен было пусто. Прописал https://site.ru
Очистил кеш в админке и браузере и не помогло
« Последнее редактирование: 21.11.2021, 12:53:49 от dj_serg »
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Re: Адрес сайта без www
« Ответ #15 : 21.11.2021, 13:19:04 »
в коде http://www.site.ru
выводит эта переменная <?php echo $host ?>
откуда она берёт значение с www а не без, не понятно
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Адрес сайта без www
« Ответ #16 : 21.11.2021, 13:29:00 »
https://site.ru
В базе данных нет http://www.site.ru
Ну Даете доступ - и решаем ! ))
А там и не будет -- оно же динамическое ! ))
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Адрес сайта без www
« Ответ #17 : 21.11.2021, 13:29:12 »
Joomla\CMS\Uri\Uri;
getInstance and base
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Re: Адрес сайта без www
« Ответ #18 : 21.11.2021, 16:27:20 »
Joomla\CMS\Uri\Uri;
getInstance and base
путь такой \www\libraries\src\Uri\Uri.php
Содержимое файла
Код
<?php
/**
 * Joomla! Content Management System
 *
 * [member=126442]copyright[/member]  Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

namespace Joomla\CMS\Uri;

defined('JPATH_PLATFORM') or die;

/**
 * JUri Class
 *
 * This class serves two purposes. First it parses a URI and provides a common interface
 * for the Joomla Platform to access and manipulate a URI.  Second it obtains the URI of
 * the current executing script from the server regardless of server.
 *
 * @since  1.7.0
 */
class Uri extends \Joomla\Uri\Uri
{
/**
* @var    Uri[]  An array of JUri instances.
* @since  1.7.0
*/
protected static $instances = array();

/**
* @var    array  The current calculated base url segments.
* @since  1.7.0
*/
protected static $base = array();

/**
* @var    array  The current calculated root url segments.
* @since  1.7.0
*/
protected static $root = array();

/**
* @var    string  The current url.
* @since  1.7.0
*/
protected static $current;

/**
* Returns the global JUri object, only creating it if it doesn't already exist.
*
* @param   string  $uri  The URI to parse.  [optional: if null uses script URI]
*
* @return  Uri  The URI object.
*
* @since   1.7.0
*/
public static function getInstance($uri = 'SERVER')
{
if (empty(static::$instances[$uri]))
{
// Are we obtaining the URI from the server?
if ($uri == 'SERVER')
{
// Determine if the request was over SSL (HTTPS).
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off'))
{
$https = 's://';
}
elseif ((isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
(strtolower($_SERVER['HTTP_X_FORWARDED_PROTO'])!== 'http')))
{
$https = 's://';
}
else
{
$https = '://';
}

/*
* Since we are assigning the URI from the server variables, we first need
* to determine if we are running on apache or IIS.  If PHP_SELF and REQUEST_URI
* are present, we will assume we are running on apache.
*/

if (!empty($_SERVER['PHP_SELF']) && !empty($_SERVER['REQUEST_URI']))
{
// To build the entire URI we need to prepend the protocol, and the http host
// to the URI string.
$theURI = 'http' . $https . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
else
{
/*
* Since we do not have REQUEST_URI to work with, we will assume we are
* running on IIS and will therefore need to work some magic with the SCRIPT_NAME and
* QUERY_STRING environment variables.
*
* IIS uses the SCRIPT_NAME variable instead of a REQUEST_URI variable... thanks, MS
*/
$theURI = 'http' . $https . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];

// If the query string exists append it to the URI string
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']))
{
$theURI .= '?' . $_SERVER['QUERY_STRING'];
}
}

// Extra cleanup to remove invalid chars in the URL to prevent injections through the Host header
$theURI = str_replace(array("'", '"', '<', '>'), array('%27', '%22', '%3C', '%3E'), $theURI);
}
else
{
// We were given a URI
$theURI = $uri;
}

static::$instances[$uri] = new static($theURI);
}

return static::$instances[$uri];
}

/**
* Returns the base URI for the request.
*
* @param   boolean  $pathonly  If false, prepend the scheme, host and port information. Default is false.
*
* @return  string  The base URI string
*
* @since   1.7.0
*/
public static function base($pathonly = false)
{
// Get the base request path.
if (empty(static::$base))
{
$config = \JFactory::getConfig();
$uri = static::getInstance();
$live_site = ($uri->isSsl())? str_replace('http://', 'https://', $config->get('live_site')) : $config->get('live_site');

if (trim($live_site)!= '')
{
$uri = static::getInstance($live_site);
static::$base['prefix'] = $uri->toString(array('scheme', 'host', 'port'));
static::$base['path'] = rtrim($uri->toString(array('path')), '/\\');

if (defined('JPATH_BASE') && defined('JPATH_ADMINISTRATOR'))
{
if (JPATH_BASE == JPATH_ADMINISTRATOR)
{
static::$base['path'] .= '/administrator';
}
}
}
else
{
static::$base['prefix'] = $uri->toString(array('scheme', 'host', 'port'));

if (strpos(php_sapi_name(), 'cgi')!== false && !ini_get('cgi.fix_pathinfo') && !empty($_SERVER['REQUEST_URI']))
{
// PHP-CGI on Apache with "cgi.fix_pathinfo = 0"

// We shouldn't have user-supplied PATH_INFO in PHP_SELF in this case
// because PHP will not work with PATH_INFO at all.
$script_name = $_SERVER['PHP_SELF'];
}
else
{
// Others
$script_name = $_SERVER['SCRIPT_NAME'];
}

// Extra cleanup to remove invalid chars in the URL to prevent injections through broken server implementation
$script_name = str_replace(array("'", '"', '<', '>'), array('%27', '%22', '%3C', '%3E'), $script_name);

static::$base['path'] = rtrim(dirname($script_name), '/\\');
}
}

return $pathonly === false ? static::$base['prefix'] . static::$base['path'] . '/' : static::$base['path'];
}

/**
* Returns the root URI for the request.
*
* @param   boolean  $pathonly  If false, prepend the scheme, host and port information. Default is false.
* @param   string   $path      The path
*
* @return  string  The root URI string.
*
* @since   1.7.0
*/
public static function root($pathonly = false, $path = null)
{
// Get the scheme
if (empty(static::$root))
{
$uri = static::getInstance(static::base());
static::$root['prefix'] = $uri->toString(array('scheme', 'host', 'port'));
static::$root['path'] = rtrim($uri->toString(array('path')), '/\\');
}

// Get the scheme
if (isset($path))
{
static::$root['path'] = $path;
}

return $pathonly === false ? static::$root['prefix'] . static::$root['path'] . '/' : static::$root['path'];
}

/**
* Returns the URL for the request, minus the query.
*
* @return  string
*
* @since   1.7.0
*/
public static function current()
{
// Get the current URL.
if (empty(static::$current))
{
$uri = static::getInstance();
static::$current = $uri->toString(array('scheme', 'host', 'port', 'path'));
}

return static::$current;
}

/**
* Method to reset class static members for testing and other various issues.
*
* @return  void
*
* @since   1.7.0
*/
public static function reset()
{
static::$instances = array();
static::$base = array();
static::$root = array();
static::$current = '';
}

/**
* Set the URI path string. Note we keep this method here so it uses the old _cleanPath function
*
* @param   string  $path  The URI path string.
*
* @return  void
*
* @since       1.7.0
* @deprecated  4.0  Use {@link \Joomla\Uri\Uri::setPath()}
* @note        Present to proxy calls to the deprecated {@link JUri::_cleanPath()} method.
*/
public function setPath($path)
{
$this->path = $this->_cleanPath($path);
}

/**
* Checks if the supplied URL is internal
*
* @param   string  $url  The URL to check.
*
* @return  boolean  True if Internal.
*
* @since   1.7.0
*/
public static function isInternal($url)
{
$uri = static::getInstance($url);
$base = $uri->toString(array('scheme', 'host', 'port', 'path'));
$host = $uri->toString(array('scheme', 'host', 'port'));

// @see JUriTest
if (empty($host) && strpos($uri->path, 'index.php') === 0
|| !empty($host) && preg_match('#' . preg_quote(static::base(), '#'). '#', $base)
|| !empty($host) && $host === static::getInstance(static::base())->host && strpos($uri->path, 'index.php')!== false
|| !empty($host) && $base === $host && preg_match('#' . preg_quote($base, '#'). '#', static::base()))
{
return true;
}

return false;
}

/**
* Build a query from an array (reverse of the PHP parse_str()).
*
* @param   array  $params  The array of key => value pairs to return as a query string.
*
* @return  string  The resulting query string.
*
* @see     parse_str()
* @since   1.7.0
* @note    The parent method is protected, this exposes it as public for B/C
*/
public static function buildQuery(array $params)
{
return parent::buildQuery($params);
}

/**
* Parse a given URI and populate the class fields.
*
* @param   string  $uri  The URI string to parse.
*
* @return  boolean  True on success.
*
* @since   1.7.0
* @note    The parent method is protected, this exposes it as public for B/C
*/
public function parse($uri)
{
return parent::parse($uri);
}

/**
* Resolves //, ../ and ./ from a path and returns
* the result. Eg:
*
* /foo/bar/../boo.php    => /foo/boo.php
* /foo/bar/../../boo.php => /boo.php
* /foo/bar/.././/boo.php => /foo/boo.php
*
* @param   string  $path  The URI path to clean.
*
* @return  string  Cleaned and resolved URI path.
*
* @since       1.7.0
* @deprecated  4.0   Use {@link \Joomla\Uri\Uri::cleanPath()} instead
*/
protected function _cleanPath($path)
{
return parent::cleanPath($path);
}
}
не совсем понятно что тут менять, вроде привязки к www я не вижу


Ну Даете доступ - и решаем ! ))
А там и не будет -- оно же динамическое ! ))
Подскажите где может быть проблема, что нужно искать и заменить. Предоставление доступа не много сложно с этим.
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
Re: Адрес сайта без www
« Ответ #19 : 21.11.2021, 23:09:35 »
В админке VirtueMart есть параметр
Domain   http://www.site.ru ( указан домен)
В старых версиях он был  в конфиге (virtuemart.cfg.php), но VirtueMart обновлялся и сейчас этих параметров
define( 'URL', $mosConfig_live_site.$app );
define( 'SECUREURL', $mosConfig_live_site.$app );
нету

Я пробовал переносить на субдомен и Domain   http://www.site.ru  не меняется в админке.
Где в новых версиях можно прописать домен??
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Убрать блок в мобильной версии сайта

Автор Grigorii

Ответов: 10
Просмотров: 617
Последний ответ 10.02.2024, 19:38:34
от darkghost
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 480
Последний ответ 06.02.2024, 12:42:26
от AlexP750
Замена данных сайта на данные поддомена

Автор rezchik

Ответов: 5
Просмотров: 348
Последний ответ 05.02.2024, 11:45:36
от web1
Просмотр сайта с удаленным доменом

Автор neon6535

Ответов: 5
Просмотров: 431
Последний ответ 23.08.2023, 00:06:15
от sivers
Отображение меню мобильной версии сайта

Автор AnSk

Ответов: 1
Просмотров: 331
Последний ответ 22.08.2023, 18:52:55
от arma