bigsova 0 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа Приветствую всех, нужно сделать плагин для 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 сказал: Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа <?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> Цитата Ссылка на сообщение Поделиться на других сайтах
bigsova 0 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа Автор 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 скину монет вам Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа 26 минут назад, bigsova сказал: Спасибо большое, работает если только указать домен с другой зоны site.com как главный , имеется поддомен x.site.com при переходе на него каноническая ссылка так и есть x.site.com, а если указать в плагине site.net тогда префикс x. не добавляется и как положено site.net я так понимаю это не исправить, особенность алиасов наверное такая, напишите usdt скину монет вам Погодите, у вас несколько аллиасов основного домена с поддоменами? И вам нужно на поддоменах чтобы был указан текущий домен/алиас или тот что именно вы укажите? Цитата Ссылка на сообщение Поделиться на других сайтах
bigsova 0 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа Автор Только что, Gameer сказал: Погодите, у вас несколько аллиасов основного домена с поддоменами? И вам нужно на поддоменах чтобы был указан текущий домен/алиас или тот что именно вы укажите? Всё верно:) Только что, bigsova сказал: Всё верно:) Чтобы для всех алиасов был домен, что я впишу в ваш плагин Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа 2 минуты назад, bigsova сказал: Всё верно:) Чтобы для всех алиасов был домен, что я впишу в ваш плагин Так что именно вам нужно? Уточните задачу. Сделать это легко, просто нужно понимание. Убрать для поддоменов в canonical сам поддомен и оставить только основной домен? Цитата Ссылка на сообщение Поделиться на других сайтах
bigsova 0 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа Автор 2 минуты назад, bigsova сказал: Всё верно:) Чтобы для всех алиасов был домен, что я впишу в ваш плагин Есть главный домен, на него есть алиасы с префиксами x1.site.com c.site.com итд нужно чтобы при переходе на них в канонической ссылке был главный домен site.com 1 минуту назад, Gameer сказал: Так что именно вам нужно? Уточните задачу. Сделать это легко, просто нужно понимание. Убрать для поддоменов в canonical сам поддомен и оставить только основной домен? Дада Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа 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> Цитата Ссылка на сообщение Поделиться на других сайтах
bigsova 0 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа Автор 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" а не главный домен Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа 31 минуту назад, bigsova сказал: К сожалению не работает, также поддомен в rel="canonical" а не главный домен А вы точно этот установили? И предыдущий удалили? Цитата Ссылка на сообщение Поделиться на других сайтах
bigsova 0 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа Автор 1 минуту назад, Gameer сказал: А вы точно этот установили? И предыдущий удалили? Конечно 7 минут назад, Gameer сказал: А вы точно этот установили? И предыдущий удалили? И кэш чистил Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа <?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> Вот то что нужно было ТС Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 068 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа 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); и все собственно, цель достигнута. Код не проверял, но должен работать Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа 6 минут назад, celsoft сказал: Нет. он не будет работать у ТС. автору топика нужно поддомены поменять на домен второго уровня а не подменить поддомены у домена. А вы проверяете если есть поддомены то меняете на поддомены, если нет, то на домен. А поддомены есть всегда, соответственно плагин поддомены заменит на поддомены. Какой то сложный вы написали плагин достаточно строчку $meta->canonical($canonical); заменить на $canonical = str_replace(parse_url($canonical)['host'], 'site.com', $canonical); $meta->canonical($canonical); и все собственно, цель достигнута. Код не проверял, но должен работать Там совсем иная ситуация оказалась. Это и было предложено в первом варианте. Цитата Ссылка на сообщение Поделиться на других сайтах
bigsova 0 Опубликовано: 22 августа Рассказать Опубликовано: 22 августа Автор 7 часов назад, bigsova сказал: Задача выполнена, спасибо большое Gameer 👍 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.