Новости Joomla

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

Makc

  • Захожу иногда
  • 55
  • 11 / 0
[Работает] Решение проблемы с дублями страниц в Joomla 1.7 для K2 2.5.4 от Efanych рабочее.

Код
Для полного материала:
Если  вы используете для вывода материала шаблон default и он не переопределён в основном шаблоне, то
components/com_k2/templates/default/item.php

<?php
if ($this->item->link!= JRequest::getURI()) JApplication::redirect($this->item->link,'','' ,true);
?>

Для категории
components/com_k2/templates/default/category_item.php

<?php
$this->original_link = JRoute::_(K2HelperRoute::getCategoryRoute(JRequest::getVar('id'),
0));
if (JRequest::getInt('start') > 0) $this->original_link .= "?start=" . JRequest::getVar('start');
$this->real_link = JRequest::getURI();
if ($this->original_link != $this->real_link) JApplication::redirect($this->original_link,'','' ,true);
?>

Спасибо большое.
Всё, что пишу, проверено или работатет на J 1.7 + К 2.5.4
*

termit

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Пролема с этим фрагментом

Файл /templates/название_вашего_шаблона/html/com_content/article/default.php
Нужно добавить в самом начале файла строки:
<?php defined('_JEXEC') or die('Restricted access');
if ($this->article->readmore_link != JRequest::getURI()) JApplication::redirect($this->article-
>readmore_link);
?>

Если его вставляю то всегда редиректит на главную, с любой ссылки РидМо или просто при переходе в меню.
Jom 2.5 обновленная
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Поменяйте article на item. Будет так
Цитировать
<?php
if ($this->item->readmore_link != JRequest::getURI())
JApplication::redirect ($this->item->readmore_link,'','' ,true);
?>
Создание сайтов, шаблонов, помощь в решении проблем.
*

termit

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
все ок, спасибо
*

fanrad

  • Новичок
  • 2
  • 0 / 0
в общем, для себя я сделала плагин
http://hekima.ru/downloads/shnodoubles.zip
правда, он, помимо указанного, заменяет ссылки, содержащие component/content/article , на ссылки с определенным алиасом, указанным в админ-панели плагина (мне так было надо под мою конкретную задачу)
если кому-то пригодится - буду рада
Поставил плагин. Все работает нормально. Но вот вопрос. При регистрации не показываются системные сообщения. Нет никакой инфы для регистрируемого - успешно или нет и т.д.  Что ни делал, ничего не выходит. Может кто сталкивался с подобным?
*

den_caruk

  • Захожу иногда
  • 64
  • 2 / 0
Здравствуйте, все конечно супер...я использовал решение от Efanych....Но, осталась еще одна проблема.....дублирование главной страницы через категории статей.....
например
http://sait.com/kategory1/2-название статьи.html
http://sait.com/kategory3/2-название статьи.html
http://sait.com/kategory5/2-название статьи.html и так дальше, причем 2-это ID статьи на главной
Так формируется куча дублей
« Последнее редактирование: 22.02.2012, 00:28:42 от den_caruk »
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Здравствуйте.

В данной теме я решил поделиться своими наработками по Joomla 1.5. Может кому-то пригодятся.


Недавно в процессе поискового продвижения сайта на Joomla 1.5 столкнулся с одной весьма серьезной проблемой встроенного механизма ЧПУ (SEF).

Суть проблемы заключается в том, что в Joomla одна и та же страница site.ru/news/tech/1-news.html, например, может быть доступна по очень многим адресам:

site.ru/index.php?option=com_content&view=article&id=22
site.ru/news/tech/1.html/
site.ru/news/2-tech/1-news.html
site.ru/1-news/2-tech/1dsfsdkgjdfgklhfdgjf
site.ru/home/1.html
site.ru/component/content/frontpage....

Проблема весьма серьезная. Аналогично и с категориями, с site.ru/, site.ru/index.php, с разделами и так далее.

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

Особого желания играться с редиректами в htaccess у меня не было, robots.txt тоже не вариант. Ну закрою я в robots.txt site.ru/index.php, ну а что делать с вариантами вроде site.ru/news/2-tech/1-news.htgjfhgsldfjkgd ?

Как частичное решение ситуации можно было бы рассмотреть sh404SEF, но опять же. Это стороннее решение, оно все же снижает производительность и стабильность работы системы в целом, ИМХО.

Вот и стал я искать выход. Решение оказалось очень простым: нужно при генерации страницы раздела, категории, статьи, главной страницы сравнивать адрес в запросе с вычисленным адресом страницы в системе. Вычисляется он на основе расположения страницы в меню, на основании псеводонимов (alias), идентификаторов, а также на основании раздела/категории. Для одной страницы существует лишь один так называемый системный адрес. Он используется по-умолчанию при генерации ссылок в системе.

Если адрес в запросе не совпадает с системным адресом страницы, то движок с помощью 301 редиректа перебросит пользователя или поискового бота на нужную страницу. Таким вот образом дубли страниц оперативно склеиваются поисковиками по 301 редиректу.

Для лучшей совместимости эту проверку я вынес в код шаблона. Да, это прямое нарушение концепции MVC, но это все же лучше чем правка системных файлов ручками при каждом обновлении. Если кому-то решение не понравится - можете аналогичным образом поправить контроллер com_content.

Данный модуль был протестирован на Joomla 1.5.22 со стандартным ЧПУ и com_content. Данный модуль должен заработать и на 1.6.


Ссылки на код модуля с подробным описанием и установкой: скачать / скачать.

Большая человеческая просьба не перезаливать архивы на другие файлообменники и не публиковать код с описанием на других страницах без моего разрешения. Просто кидаете ссылки на архивы. Отнеситесь к этому с пониманием.


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


Как можно решить эту проблему? Заранее спасибо

Я заметил, что данная проблема есть только в Хроме. В остальных все нормально
« Последнее редактирование: 08.02.2012, 18:50:03 от dexteron »
*

den_caruk

  • Захожу иногда
  • 64
  • 2 / 0
Почистите кеш Joomla
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Почистите кеш Joomla

Не помогло. Вот, что еще интересно, такая ошибка вылетает в Хроме только при клике на ссылку главная (www.mysite.ru)
*

skai

  • Завсегдатай
  • 1198
  • 153 / 1
  • skaiseo
чистим кэш браузера.
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
чистим кэш браузера.
Аналогично. Не помогло. А почему, собственно, вылетает такая ошибка?
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Ошибка появляется только при открытии главной?
Создание сайтов, шаблонов, помощь в решении проблем.
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Ошибка появляется только при открытии главной?
Да, при переходе по адресу mysite.ru  (Когда нажимаешь в меню (mainmenu) на ссылку "Главная" ) и по адресу mysite.ru/index.php

После перехода по вышеуказанным адресам происходит редирект на страницу http://mysite.ru/glavnaya.html

Вот еще заметил: в Хроме переход по таких ссылках происходит по адресу без http:// и www, в то время, как в IE, Firefox и Opera с http://
« Последнее редактирование: 16.02.2012, 16:59:04 от dexteron »
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
А что у вас на главной назначено? Если материал, то переделайте в блог материалов на главной
Создание сайтов, шаблонов, помощь в решении проблем.
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Да, у меня стоит на главной материал. Переделал на блог материалов, стало лучше. Пункт меню "Главная" нормально открывается.
Ну, а при переходе по логотипу в шапке с ссылкой на mysite.ru/index.php проблема осталась. Как такую проблемку решить не подскажите?
« Последнее редактирование: 16.02.2012, 17:16:20 от dexteron »
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Лучше ссылку на логотипе изменить. Но корни не отсюда ростут. Проверьте, какой ответ сервера получаете при обращении к странице mysite.ru/index.php
Создание сайтов, шаблонов, помощь в решении проблем.
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Поскольку у меня был один логотип  и картинка-надпись в шапке (с ссылками на index.php), я заменил в некоторых местах в шаблоне в файле index.php на http://mysite.ru/



Вроде все работает.
Спасибо за советы.
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Лучше ссылку на логотипе изменить. Но корни не отсюда ростут. Проверьте, какой ответ сервера получаете при обращении к странице mysite.ru/index.php

Вот такой ответ сервера:

Код
HTTP/1.1 303 See other
Date: Thu, 16 Feb 2012 13:29:39 GMT
Server: Apache/2.2.17 (Unix)
X-Powered-By: PHP/5.2.10-2ubuntu6.7
Set-Cookie: dca20d67941635252ba16156b10316f1=f21fa76120293eb61a418585a60afffb; path=/
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Location: http://mobileleader.ru/
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=windows-1251
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Вот здесь код уже подкоректирован
Создание сайтов, шаблонов, помощь в решении проблем.
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Вот здесь код уже подкоректирован

А код
Код
defined('_JEXEC') or die('Restricted access');

я так понял писать не обязательно?

Просто заменить строку
Код
if ($this->original_link != $this->real_link) JApplication::redirect($this->original_link);
на
Код
if ($this->original_link != $this->real_link) JApplication::redirect($this->original_link,'','' ,true);

В файлах:
  • components\com_content\views\section\tmpl\blog.php
  • components\com_content\views\category\tmpl\blog.php
  • components\com_content\views\frontpage\tmpl\default.php
  • components\com_content\views\article\tmpl\default.php

Я правильно понял?  ^-^
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Да, только там строчки отличаются, заменить соответственно.
Создание сайтов, шаблонов, помощь в решении проблем.
*

termit

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
J 2.5 был апгрейд с 1.5

Проблема с дублями страниц устранена, НО остались дубли категорий.

Сайт/Статья1/2-uncategorised
Сайт/Статья2/2-uncategorised
Сайт/Статья3/2-uncategorised

Вставлял коды по инструкции из манулала. Помогите пожалуйста !
*

termit

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Устранил.

Uncategorised удалил.

Статьи перенес в опубликованые категории.

Дубль главной в категории закрыл в роботс.
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
А как теперь можно проверить позиции модулей?  (sait.ru/?tp=1)
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Просто добавьте в условие для главной исключение
Цитировать
if ($this->original_link != $this->real_link && $this->real_link != "/?tp=1") JApplication::redirect($this->original_link,'','' ,true);
Создание сайтов, шаблонов, помощь в решении проблем.
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Просто добавьте в условие для главной исключение
Правильно ли я понял?
Нужно поставить после строки:
Код
if ($this->original_link != $this->real_link) JApplication::redirect($this->original_link,'','' ,true);
в файле:
/components/com_content/views/frontpage/tmpl/default.php
строку:
Код
if ($this->original_link != $this->real_link && $this->real_link != "/?tp=1") JApplication::redirect($this->original_link,'','' ,true);
Вот так:
[IMG=http://img713.imageshack.us/img713/861/19931872.jpg][/IMG]
Все ровно перебрасывает на главную. Может я что-то неправильно сделал?
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Цитировать
Нужно поставить после строки:
Не после, а вместо
Создание сайтов, шаблонов, помощь в решении проблем.
*

v4mp

  • Новичок
  • 1
  • 0 / 0
Сегодня заметил по логу, что хак выбивает ошибку при использовании.
PHP Fatal error: Call to undefined method ContentViewArticle::close() in XXX/libraries/joomla/application/application.php on line XXX

Посмотрел на функцию redirect и пишу как побороть -
меняем в каждом коде JApplication::redirect( на $app->redirect(
Перед строчкой с $app->redirect( пишем
$app = JFactory::getApplication();

dexteron, читайте текст выше))
« Последнее редактирование: 27.02.2012, 19:28:55 от v4mp »
*

komponent

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Пригодилось, давно хотел этого :)
*

maxikm

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
привет всем! помогите пожалуйста, я не гуру в Joomla по-этому прошу помощи. После того как начал работать c JoomFish дофига дублей страниц, пробовал сделать по инструкции вставить код в нужные файлы шаблона, после этого браузер пишет что перенаправление может длиться вечно что еще надо поправить?, я так думаю в файле .htaccess, подобный вопрос уже был в теме но конкретного ответа не него не было.
вот код из файла
########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension XML files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension XML files
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode data within the URL
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
########## End - Rewrite rules to block out some common exploits


########## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
########## End - Custom redirects


#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)

# RewriteBase /


########## Begin - Joomla! core SEF Section
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
########## End - Joomla! core SEF Section
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работают SEF-ссылки на Joomla 5

Автор Detonator

Ответов: 0
Просмотров: 137
Последний ответ 08.04.2024, 10:02:59
от Detonator
Расширение SEF Wizard — улучшение маршрутизации и ЧПУ в Joomla! Инструменты SEO - администратора

Автор Филипп Сорокин

Ответов: 525
Просмотров: 47469
Последний ответ 22.10.2022, 12:14:38
от Lemonez
Как убрать ID из URL Joomla 3?

Автор SaxMusicOnly

Ответов: 142
Просмотров: 55460
Последний ответ 02.03.2021, 14:47:35
от Vasiliy111
Редирект со страниц *.php на главную через htaccess ~

Автор kiev

Ответов: 0
Просмотров: 1456
Последний ответ 07.02.2021, 15:29:04
от kiev
Как прописать "canonical" для всех страниц с поддомена на домен?

Автор misteri27

Ответов: 11
Просмотров: 5131
Последний ответ 12.09.2020, 10:41:07
от webzepa