Перейти к публикации

Сделать плагин <link rel="canonical" href="https://site.com/">


Рекомендованные сообщения

Приветствую всех, нужно сделать плагин для dle 17.1 чтобы на поддоменах и алиасах был домен который я впишу в плагин обязательно на всех страницах чтобы работало. Знаю что нужно править файл engine/engine.php 

Для примера привожу для сайта https://любойподдомен.site.com/ должна быть каноническая ссылка <link rel="canonical" href="https://site.com/"> а не как сейчас у меня <link rel="canonical" href="https://любойподдомен.site.com/">

пишите кто сможет сделать)

 

  16.03.2017 в 06:35, alex32 сказал:

Только что, bigsova сказал:

Приветствую всех, нужно сделать плагин для dle 17.1 чтобы на поддоменах и алиасах был домен который я впишу в плагин обязательно на всех страницах чтобы работало. Знаю что нужно править файл engine/engine.php 

Для примера привожу для сайта https://любойподдомен.site.com/ должна быть каноническая ссылка <link rel="canonical" href="https://site.com/"> а не как сейчас у меня <link rel="canonical" href="https://любойподдомен.site.com/">

пишите кто сможет сделать)

 

  16.03.2017 в 06:35, alex32 сказал:

 

Ссылка на сообщение
Поделиться на других сайтах
<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Замена домена в каноникал</name>
	<description>by https://lazydev.pro/</description>
	<icon></icon>
	<version>1.0.0</version>
	<dleversion></dleversion>
	<versioncompare>==</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<needplugin></needplugin>
	<mnotice>1</mnotice>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<phpinstall><![CDATA[]]></phpinstall>
	<phpupgrade><![CDATA[]]></phpupgrade>
	<phpenable><![CDATA[]]></phpenable>
	<phpdisable><![CDATA[]]></phpdisable>
	<phpdelete><![CDATA[]]></phpdelete>
	<notice><![CDATA[В плагине заменить site.com на свой домен, без слешей и протокола.]]></notice>
	<file name="engine/engine.php">
		<operation action="replace">
			<searchcode><![CDATA[$meta->canonical($canonical);]]></searchcode>
			<replacecode><![CDATA[$meta->canonical(str_replace(parse_url($canonical)['host'], 'site.com', $canonical));]]></replacecode>
			<enabled>1</enabled>
		</operation>
	</file>
</dleplugin>

 

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, Gameer сказал:

<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Замена домена в каноникал</name>
	<description>by https://lazydev.pro/</description>
	<icon></icon>
	<version>1.0.0</version>
	<dleversion></dleversion>
	<versioncompare>==</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<needplugin></needplugin>
	<mnotice>1</mnotice>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<phpinstall><![CDATA[]]></phpinstall>
	<phpupgrade><![CDATA[]]></phpupgrade>
	<phpenable><![CDATA[]]></phpenable>
	<phpdisable><![CDATA[]]></phpdisable>
	<phpdelete><![CDATA[]]></phpdelete>
	<notice><![CDATA[В плагине заменить site.com на свой домен, без слешей и протокола.]]></notice>
	<file name="engine/engine.php">
		<operation action="replace">
			<searchcode><![CDATA[$meta->canonical($canonical);]]></searchcode>
			<replacecode><![CDATA[$meta->canonical(str_replace(parse_url($canonical)['host'], 'site.com', $canonical));]]></replacecode>
			<enabled>1</enabled>
		</operation>
	</file>
</dleplugin>

 

Спасибо большое, работает если только указать домен с другой зоны site.com как главный , имеется поддомен x.site.com при переходе на него каноническая ссылка так и есть  x.site.com, а если указать в плагине site.net тогда префикс x. не добавляется и как положено site.net я так понимаю это не исправить, особенность алиасов наверное такая, напишите usdt скину монет вам

Ссылка на сообщение
Поделиться на других сайтах
26 минут назад, bigsova сказал:

Спасибо большое, работает если только указать домен с другой зоны site.com как главный , имеется поддомен x.site.com при переходе на него каноническая ссылка так и есть  x.site.com, а если указать в плагине site.net тогда префикс x. не добавляется и как положено site.net я так понимаю это не исправить, особенность алиасов наверное такая, напишите usdt скину монет вам

Погодите, у вас несколько аллиасов основного домена с поддоменами? И вам нужно на поддоменах чтобы был указан текущий домен/алиас или тот что именно вы укажите?

Ссылка на сообщение
Поделиться на других сайтах
Только что, Gameer сказал:

Погодите, у вас несколько аллиасов основного домена с поддоменами? И вам нужно на поддоменах чтобы был указан текущий домен/алиас или тот что именно вы укажите?

Всё верно:)

Только что, bigsova сказал:

Всё верно:)

Чтобы для всех алиасов был домен, что я впишу в ваш плагин

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, bigsova сказал:

Всё верно:)

Чтобы для всех алиасов был домен, что я впишу в ваш плагин

Так что именно вам нужно? Уточните задачу. Сделать это легко, просто нужно понимание.

Убрать для поддоменов в canonical сам поддомен и оставить только основной домен?

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, bigsova сказал:

Всё верно:)

Чтобы для всех алиасов был домен, что я впишу в ваш плагин

Есть главный домен, на него есть алиасы с префиксами x1.site.com c.site.com итд нужно чтобы при переходе на них в канонической ссылке был главный домен site.com

1 минуту назад, Gameer сказал:

Так что именно вам нужно? Уточните задачу. Сделать это легко, просто нужно понимание.

Убрать для поддоменов в canonical сам поддомен и оставить только основной домен?

Дада

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, bigsova сказал:

Есть главный домен, на него есть алиасы с префиксами x1.site.com c.site.com итд нужно чтобы при переходе на них в канонической ссылке был главный домен site.com

Дада

Попробуйте этот плагин тогда.

<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Замена домена в каноникал</name>
	<description>by https://lazydev.pro/</description>
	<icon></icon>
	<version>1.0.0</version>
	<dleversion></dleversion>
	<versioncompare>==</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<needplugin></needplugin>
	<mnotice>1</mnotice>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<phpinstall><![CDATA[]]></phpinstall>
	<phpupgrade><![CDATA[]]></phpupgrade>
	<phpenable><![CDATA[]]></phpenable>
	<phpdisable><![CDATA[]]></phpdisable>
	<phpdelete><![CDATA[]]></phpdelete>
	<notice><![CDATA[В плагине заменить site.com на свой домен, без слешей и протокола.]]></notice>
	<file name="engine/engine.php">
		<operation action="replace">
			<searchcode><![CDATA[$meta->canonical($canonical);]]></searchcode>
			<replacecode><![CDATA[$hostCanonical = parse_url($canonical, PHP_URL_HOST);
$hostCanonicalParts = explode('.', $hostCanonical);
$domainCanonical = $hostCanonical;
if (count($hostCanonicalParts) > 2) {
	$domainCanonical = implode('.', array_slice($hostCanonicalParts, -2));
}

$meta->canonical(str_replace($hostCanonical, $domainCanonical, $canonical));]]></replacecode>
			<enabled>1</enabled>
		</operation>
	</file>
</dleplugin>

 

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, Gameer сказал:

Попробуйте этот плагин тогда.


<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Замена домена в каноникал</name>
	<description>by https://lazydev.pro/</description>
	<icon></icon>
	<version>1.0.0</version>
	<dleversion></dleversion>
	<versioncompare>==</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<needplugin></needplugin>
	<mnotice>1</mnotice>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<phpinstall><![CDATA[]]></phpinstall>
	<phpupgrade><![CDATA[]]></phpupgrade>
	<phpenable><![CDATA[]]></phpenable>
	<phpdisable><![CDATA[]]></phpdisable>
	<phpdelete><![CDATA[]]></phpdelete>
	<notice><![CDATA[В плагине заменить site.com на свой домен, без слешей и протокола.]]></notice>
	<file name="engine/engine.php">
		<operation action="replace">
			<searchcode><![CDATA[$meta->canonical($canonical);]]></searchcode>
			<replacecode><![CDATA[$hostCanonical = parse_url($canonical, PHP_URL_HOST);
$hostCanonicalParts = explode('.', $hostCanonical);
$domainCanonical = $hostCanonical;
if (count($hostCanonicalParts) > 2) {
	$domainCanonical = implode('.', array_slice($hostCanonicalParts, -2));
}

$meta->canonical(str_replace($hostCanonical, $domainCanonical, $canonical));]]></replacecode>
			<enabled>1</enabled>
		</operation>
	</file>
</dleplugin>

 

К сожалению не работает, также поддомен в rel="canonical" а не главный домен

Ссылка на сообщение
Поделиться на других сайтах
31 минуту назад, bigsova сказал:

К сожалению не работает, также поддомен в rel="canonical" а не главный домен

А вы точно этот установили? И предыдущий удалили?

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Gameer сказал:

А вы точно этот установили? И предыдущий удалили?

Конечно 

7 минут назад, Gameer сказал:

А вы точно этот установили? И предыдущий удалили?

И кэш чистил

Ссылка на сообщение
Поделиться на других сайтах
<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Замена домена в каноникал</name>
	<description>by https://lazydev.pro/</description>
	<icon></icon>
	<version>1.0.0</version>
	<dleversion></dleversion>
	<versioncompare>==</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<needplugin></needplugin>
	<mnotice>1</mnotice>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<phpinstall><![CDATA[]]></phpinstall>
	<phpupgrade><![CDATA[]]></phpupgrade>
	<phpenable><![CDATA[]]></phpenable>
	<phpdisable><![CDATA[]]></phpdisable>
	<phpdelete><![CDATA[]]></phpdelete>
	<notice><![CDATA[В плагине заменить site.com на свой домен, без слешей и протокола.]]></notice>
	<file name="engine/engine.php">
		<operation action="replace">
			<searchcode><![CDATA[$meta->canonical($canonical);]]></searchcode>
			<replacecode><![CDATA[$hostCanonical = explode('.', parse_url($canonical)['host']);
$subdomains = array_slice($hostCanonical, 0, count($hostCanonical) - 2 );
if (is_array($subdomains) && count($subdomains)) {
	$canonical = str_replace(parse_url($canonical)['host'], (implode('.', $subdomains) . '.site.com'), $canonical);
} else {
	$canonical = str_replace(parse_url($canonical)['host'], 'site.com', $canonical);
}
$meta->canonical($canonical);]]></replacecode>
			<enabled>1</enabled>
		</operation>
	</file>
</dleplugin>

Вот то что нужно было ТС

Ссылка на сообщение
Поделиться на других сайтах
35 минут назад, Gameer сказал:


<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Замена домена в каноникал</name>
	<description>by https://lazydev.pro/</description>
	<icon></icon>
	<version>1.0.0</version>
	<dleversion></dleversion>
	<versioncompare>==</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<needplugin></needplugin>
	<mnotice>1</mnotice>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<phpinstall><![CDATA[]]></phpinstall>
	<phpupgrade><![CDATA[]]></phpupgrade>
	<phpenable><![CDATA[]]></phpenable>
	<phpdisable><![CDATA[]]></phpdisable>
	<phpdelete><![CDATA[]]></phpdelete>
	<notice><![CDATA[В плагине заменить site.com на свой домен, без слешей и протокола.]]></notice>
	<file name="engine/engine.php">
		<operation action="replace">
			<searchcode><![CDATA[$meta->canonical($canonical);]]></searchcode>
			<replacecode><![CDATA[$hostCanonical = explode('.', parse_url($canonical)['host']);
$subdomains = array_slice($hostCanonical, 0, count($hostCanonical) - 2 );
if (is_array($subdomains) && count($subdomains)) {
	$canonical = str_replace(parse_url($canonical)['host'], (implode('.', $subdomains) . '.site.com'), $canonical);
} else {
	$canonical = str_replace(parse_url($canonical)['host'], 'site.com', $canonical);
}
$meta->canonical($canonical);]]></replacecode>
			<enabled>1</enabled>
		</operation>
	</file>
</dleplugin>

Вот то что нужно было ТС

Нет. он не будет работать у ТС. автору топика нужно поддомены поменять на домен второго уровня а не подменить поддомены у домена. А вы проверяете если есть поддомены то меняете на поддомены, если нет, то на домен. А поддомены есть всегда, соответственно плагин поддомены заменит на поддомены. Какой то сложный вы написали плагин достаточно строчку

$meta->canonical($canonical);

заменить на

$canonical = str_replace(parse_url($canonical)['host'], 'site.com', $canonical);
$meta->canonical($canonical);

и все собственно, цель достигнута. Код не проверял, но должен работать

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, celsoft сказал:

Нет. он не будет работать у ТС. автору топика нужно поддомены поменять на домен второго уровня а не подменить поддомены у домена. А вы проверяете если есть поддомены то меняете на поддомены, если нет, то на домен. А поддомены есть всегда, соответственно плагин поддомены заменит на поддомены. Какой то сложный вы написали плагин достаточно строчку


$meta->canonical($canonical);

заменить на


$canonical = str_replace(parse_url($canonical)['host'], 'site.com', $canonical);
$meta->canonical($canonical);

и все собственно, цель достигнута. Код не проверял, но должен работать

Там совсем иная ситуация оказалась. Это и было предложено в первом варианте.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...