LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 04:22:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 3 4 5 6 [7] 8   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Решение проблемы с дублями страниц в Joomla 1.5  (Прочитано 28334 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
termit
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #180 : 01.02.2012, 15:17:07 »

Пролема с этим фрагментом

Файл /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
Группа развития
*****

Репутация: +344/-3
Offline Offline

Пол: Мужской
Сообщений: 3339



« Ответ #181 : 01.02.2012, 15:19:06 »

Поменяйте article на item. Будет так
Цитировать
<?php
if ($this->item->readmore_link != JRequest::getURI())
JApplication::redirect ($this->item->readmore_link,'','' ,true);
?>
Записан
termit
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #182 : 01.02.2012, 15:27:01 »

все ок, спасибо
Записан
fanrad
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #183 : 04.02.2012, 17:42:42 »

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

Репутация: +2/-0
Offline Offline

Сообщений: 65


« Ответ #184 : 04.02.2012, 23:22:05 »

Здравствуйте, все конечно супер...я использовал решение от 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
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #185 : 08.02.2012, 18:43:59 »

Здравствуйте.

В данной теме я решил поделиться своими наработками по 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
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 65


« Ответ #186 : 10.02.2012, 23:38:34 »

Почистите кеш Joomla
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #187 : 14.02.2012, 12:45:51 »

Почистите кеш Joomla

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

Репутация: +103/-4
Offline Offline

Пол: Мужской
Сообщений: 1120


слушаю 4duk.ru


« Ответ #188 : 15.02.2012, 19:56:47 »

чистим кэш браузера.
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #189 : 16.02.2012, 05:58:35 »

чистим кэш браузера.
Аналогично. Не помогло. А почему, собственно, вылетает такая ошибка?
Записан
Efanych
Группа развития
*****

Репутация: +344/-3
Offline Offline

Пол: Мужской
Сообщений: 3339



« Ответ #190 : 16.02.2012, 10:50:31 »

Ошибка появляется только при открытии главной?
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #191 : 16.02.2012, 16:50:02 »

Ошибка появляется только при открытии главной?
Да, при переходе по адресу 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
Группа развития
*****

Репутация: +344/-3
Offline Offline

Пол: Мужской
Сообщений: 3339



« Ответ #192 : 16.02.2012, 16:56:51 »

А что у вас на главной назначено? Если материал, то переделайте в блог материалов на главной
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #193 : 16.02.2012, 17:12:39 »

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

Репутация: +344/-3
Offline Offline

Пол: Мужской
Сообщений: 3339



« Ответ #194 : 16.02.2012, 17:19:52 »

Лучше ссылку на логотипе изменить. Но корни не отсюда ростут. Проверьте, какой ответ сервера получаете при обращении к странице mysite.ru/index.php
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #195 : 16.02.2012, 17:27:25 »

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



Вроде все работает.
Спасибо за советы.
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #196 : 16.02.2012, 17:30:34 »

Лучше ссылку на логотипе изменить. Но корни не отсюда ростут. Проверьте, какой ответ сервера получаете при обращении к странице 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
Группа развития
*****

Репутация: +344/-3
Offline Offline

Пол: Мужской
Сообщений: 3339



« Ответ #197 : 16.02.2012, 17:41:33 »

Вот здесь код уже подкоректирован
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #198 : 16.02.2012, 18:00:21 »

Вот здесь код уже подкоректирован

А код
Код:
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

Я правильно понял?  Smiley
Записан
Efanych
Группа развития
*****

Репутация: +344/-3
Offline Offline

Пол: Мужской
Сообщений: 3339



« Ответ #199 : 16.02.2012, 18:01:59 »

Да, только там строчки отличаются, заменить соответственно.
Записан
termit
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #200 : 17.02.2012, 09:38:52 »

J 2.5 был апгрейд с 1.5

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

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

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

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #201 : 17.02.2012, 10:08:56 »

Устранил.

Uncategorised удалил.

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

Дубль главной в категории закрыл в роботс.
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #202 : 17.02.2012, 16:09:25 »

А как теперь можно проверить позиции модулей?  (sait.ru/?tp=1)
Записан
Efanych
Группа развития
*****

Репутация: +344/-3
Offline Offline

Пол: Мужской
Сообщений: 3339



« Ответ #203 : 17.02.2012, 16:21:51 »

Просто добавьте в условие для главной исключение
Цитировать
if ($this->original_link != $this->real_link && $this->real_link != "/?tp=1") JApplication::redirect($this->original_link,'','' ,true);
Записан
dexteron
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 29



« Ответ #204 : 17.02.2012, 17:43:17 »

Просто добавьте в условие для главной исключение
Правильно ли я понял?
Нужно поставить после строки:
Код:
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
Группа развития
*****

Репутация: +344/-3
Offline Offline

Пол: Мужской
Сообщений: 3339



« Ответ #205 : 17.02.2012, 20:11:55 »

Цитировать
Нужно поставить после строки:
Не после, а вместо
Записан
v4mp
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #206 : 27.02.2012, 19:15:33 »

Сегодня заметил по логу, что хак выбивает ошибку при использовании.
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
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 25


« Ответ #207 : 03.03.2012, 22:44:32 »

Пригодилось, давно хотел этого Azn
Записан
maxikm
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 26


« Ответ #208 : 05.03.2012, 23:37:48 »

привет всем! помогите пожалуйста, я не гуру в 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
Записан
oriol
Живу я здесь
******

Репутация: +85/-3
Offline Offline

Сообщений: 1300


« Ответ #209 : 06.03.2012, 04:25:46 »

*****
« Последнее редактирование: 06.03.2012, 04:32:42 от oriol » Записан
Страниц: 1 2 3 4 5 6 [7] 8   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet