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

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
Не знал как назвать заголовок темы, не судите строго, сейчас расскажу суть проблемы.
Есть сайт на Joomla 1.5.26, некоторое время назад стало появляться множество ошибочных URL, на сайте используется стандартный SEF (все три галки). Стандартный htacces
# Блокировать любой запрос, пытающийся установить значение mosConfig через URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Блокировать любой запрос, пытающийся испортить base64_encode через URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Блокировать любой запрос, содержащий тег <script> в URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Блокировать любой запрос, пытающийся установить значение глобальных переменных PHP через URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Блокировать любой запрос, пытающийся изменить _REQUEST переменную через URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Перенаправлять заблокированные запросы на страницу 403 с запрещенными ошибками!
RewriteRule ^(.*)$ index.php [F,L]


# 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?))$ [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]

Стоит на разделы и категории переадресация на верный URL для исключения дублей
Категория
<?php
$this->original_link = JRoute::_(ContentHelperRoute::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);
?>


Раздел
<?php
$this->original_link = JRoute::_(ContentHelperRoute::getSectionRoute(JRequest::getVar('id')));
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);
?>

Для статей данный твик не стоит, так как использется канонический плагин.

Так вот об ошибочных URL, переходят по ним поисковики, во время перехода сайт очень сильно грузится, ошибка при переходе бесконечная переадресация, таким образом запрос не может быть выполнен.

URL вот такого формата
http://mysite.net/razdel/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D1%8F%D1%8F%20%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F%20%D0%97%D0%BD%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D0%BE%D0%B3%D0%BE%20%D0%9F2%D0%9F%20%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%B0%20%D0%A2%D0%BE%D1%80%D1%80%D0%B5%D0%BD%D1%82%D0%B0!!.html?start=48

http://mysite.net/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D1%8F%D1%8F%20%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F%20%D0%97%D0%BD%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%

http://mysite.net/%D0%9F%D1%80%D0%B8%D0%B2%D0%BB%D0%B5%D0%BA%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8%20%D0%BD%D0%B0%20%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9%20%D1%81%D1%82%D0%BE%D0%BB

http://mysite.net/%EF%BF%BD

Так вот суть проблемы в том чтобы отдавать 404 по запросу на такие URL с русскими буквами и какими либо другими, а не проводить в цикл бесконечных переадресаций сайт в 301.
Как исключить русский шрифт из URL кроме поиска.

На сервере стоит nginx / apache / php / MySQL

Помогите пожалуйста, иной раз из-за таких URL нагрузка ставновится невероятной.
*

voland

  • Легенда
  • 10838
  • 576 / 111
  • Эта строка съедает место на вашем мониторе
Не знал как назвать заголовок темы, не судите строго, сейчас расскажу суть проблемы.
Есть сайт на Joomla 1.5.26, некоторое время назад стало появляться множество ошибочных URL, на сайте используется стандартный SEF (все три галки). Стандартный htacces
Сделайте все 2 галки.
*

voland

  • Легенда
  • 10838
  • 576 / 111
  • Эта строка съедает место на вашем мониторе
А кстати, где врёте?
Третья галка (использовать unicode) появилась только в 1,7/2,5, 1.5.26 не поддерживает кириллицу в URL.
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
Ну простите я оговорился, просто стоят все галвки
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
SEO
mod_rewrite
Добавить суффикс к URL    
*

voland

  • Легенда
  • 10838
  • 576 / 111
  • Эта строка съедает место на вашем мониторе
SEO
Вах!!
Мне такую же отсыпьте!

По теме -
1.5.26 не поддерживает кириллицу в URL.
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
Однако старается перейти
и зацикливается

Первая галвка в глобальной конфиге : Включить SEO
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
что где прописать чтоб такие запросы не обрабатывались а просто выводилось 404
*

voland

  • Легенда
  • 10838
  • 576 / 111
  • Эта строка съедает место на вашем мониторе
что где прописать чтоб такие запросы не обрабатывались а просто выводилось 404
Признаться, какие хаки или левые компоненты стоят..
Надеюсь утюг для этого не потребуется? Всё таки праздники, лучше без него.
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
Сторонние
1   User Manager
2    AlphaUserPoints
3    Frontend User Article List
4    JCE
5    JComments
6    JRE Cache
7    QCache
8    SEF Service Map
9    JomSocial
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
Re: Исправление URL с русскими символами
« Ответ #10 : 31.12.2012, 01:40:07 »
Хаки для Раздела и каттегории и главной для перенаправления

Для категории
<?php
$this->original_link = JRoute::_(ContentHelperRoute::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);
?>
Для главной
<?php
$this->original_link = "/";
if (JRequest::getInt('start') > 0) $this->original_link .= "index.php?start=" .
JRequest::getVar('start');
$this->real_link = JRequest::getURI();
if ($this->original_link != $this->real_link) JApplication::redirect($this->original_link,'','' ,true);
?>
Для разделов
<?php
$this->original_link = JRoute::_(ContentHelperRoute::getSectionRoute(JRequest::getVar('id')));
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);
?>
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
Re: Исправление URL с русскими символами
« Ответ #11 : 31.12.2012, 02:17:22 »
В htacces нет никаких коммад для перенапрваления таких запросов ?
или в php
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
Re: Исправление URL с русскими символами
« Ответ #12 : 31.12.2012, 03:57:42 »
Сколько надо подкинуть монеток чтоб появился стимул мне помочь, назвоите сумму и решение я заплачу, мне важно это как нигода
*

vomitting

  • Захожу иногда
  • 81
  • 0 / 0
Re: Исправление URL с русскими символами
« Ответ #13 : 31.12.2012, 19:22:17 »
Печально, ладно буду изучать rewrite может наткнусь
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться