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

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Добавление /(слэш) в url в меню

 (Прочитано 1083 раз)
0 Пользователей и 1 Гость смотрят эту тему.
makarseo
Новичок
*

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

Сообщений: 7


« : 13.03.2015, 01:35:34 »

Не пинайте, реально Google уже 3й день. На форуме тоже искал.

Проблема следующая:
На сайте включен стандартный SEF, без всяких там sef404.

Мне необходимы ссылки со слэшем в конце. Вида: http://domen.com.ua/zhalyuzi/vertikalnye-tkanevye/
И настроен редирект в штасс.
Но вот в самом меню они отображаются без / в виде: http://domen.com.ua/zhalyuzi/vertikalnye-tkanevye

Как добавить в меню эти слэши?

1. Штасс - не вариант он делает только редирект. Это уже настроено.
2. Добавлять слеш руками, меню их убирает.
3. Использовать sef404 не хочу, он мне побьет ссылки все. Над проектом ведется оптимизация и продвижение, черевато паданием трафика.

Может можно как то в код засунуть, что все урлы в меню должны заканчиваться на /?
Записан
kik84
Живу я здесь
******

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

Сообщений: 1307



« Ответ #1 : 13.03.2015, 10:37:55 »

А для слеш-то в конце нужен?
Записан
Ragivort
Живу я здесь
******

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

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


Есть мечта-стоит жить


« Ответ #2 : 13.03.2015, 10:45:17 »

Ну да, вопрос такой же, для чего в конце слеш?
Записан
makarseo
Новичок
*

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

Сообщений: 7


« Ответ #3 : 13.03.2015, 12:22:04 »

А для слеш-то в конце нужен?
Ну да, вопрос такой же, для чего в конце слеш?

Для SEO оптимизации.
Сейчас вопрос стоит как его сделать в конце URL, в самом меню отображение.
Записан
Ragivort
Живу я здесь
******

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

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


Есть мечта-стоит жить


« Ответ #4 : 13.03.2015, 12:25:20 »

Для SEO оптимизации слеш в конце как раз плохо
Записан
SeBun
Практически профи
*******

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

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



« Ответ #5 : 13.03.2015, 13:08:23 »

А для слеш-то в конце нужен?
Если идёт обработка REQUEST_URI через PHP, то там может иметь огромное значение наличие или отсутствия слэша в конце URL. И очень важно привести весь сайт к единому стандарту, чтобы было либо со слэшем на конце, либо без. Для поисковиков со слешем и без - это разные адреса, если от наличия слэша контент не меняется, то поисковик склеит это дело и не важно даже как ссылки ставить при продвижении. И это не есть хорошо. Те сайты, которые уличены в такой, казалось бы мелочи, начинают падать в самый низ поисковых рейтингов. Для вас важно добиться того, что бы все страницы сайта имели только один адрес.
 
Записан
makarseo
Новичок
*

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

Сообщений: 7


« Ответ #6 : 13.03.2015, 13:52:33 »

Если идёт обработка REQUEST_URI через PHP, то там может иметь огромное значение наличие или отсутствия слэша в конце URL. И очень важно привести весь сайт к единому стандарту, чтобы было либо со слэшем на конце, либо без. Для поисковиков со слешем и без - это разные адреса, если от наличия слэша контент не меняется, то поисковик склеит это дело и не важно даже как ссылки ставить при продвижении. И это не есть хорошо. Те сайты, которые уличены в такой, казалось бы мелочи, начинают падать в самый низ поисковых рейтингов. Для вас важно добиться того, что бы все страницы сайта имели только один адрес.
 

Спасибо.

Но может кто то напишет уже конкретное решение?
Сейчас все страницы без слеша в конца, их склейка идет 301 через штасс.
Записан
ELLE
Support Team
*****

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

Пол: Женский
Сообщений: 4723



« Ответ #7 : 13.03.2015, 15:55:58 »

ковыряйте шаблон меню mod_menu
templates/yourtemplate/html/mod_menu/*
Записан
kik84
Живу я здесь
******

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

Сообщений: 1307



« Ответ #8 : 13.03.2015, 17:14:33 »

Если идёт обработка REQUEST_URI через PHP, то там может иметь огромное значение наличие или отсутствия слэша в конце URL. И очень важно привести весь сайт к единому стандарту, чтобы было либо со слэшем на конце, либо без. Для поисковиков со слешем и без - это разные адреса, если от наличия слэша контент не меняется, то поисковик склеит это дело и не важно даже как ссылки ставить при продвижении. И это не есть хорошо. Те сайты, которые уличены в такой, казалось бы мелочи, начинают падать в самый низ поисковых рейтингов. Для вас важно добиться того, что бы все страницы сайта имели только один адрес.
 

У меня нигде нет слеша в конце URL у внутренних. Он убран так:
$uri = preg_replace("/\?.*/i",'', $_SERVER['REQUEST_URI']);
 
if ((!strpos($uri, 'administrator'))  && (strlen($uri)>1)) {
  if (rtrim($uri,'/')!=$uri) {
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: http://'.$_SERVER['SERVER_NAME'].str_replace($uri, rtrim($uri,'/'), $_SERVER['REQUEST_URI']));
    exit();   
  }
}

Через htaccess не работает стандартный способ т.к. тогда циклическая в админке.

Для ТС, вот попробуй тоже через index.php http://avolberg.ru/www/seo/dubli-stranic-slash-url
Записан
SeBun
Практически профи
*******

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

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



« Ответ #9 : 13.03.2015, 17:57:44 »

Для ТС, вот попробуй тоже через index.php
До первого обновления, ибо все правки ядра после обновления слетят.
Записан
kik84
Живу я здесь
******

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

Сообщений: 1307



« Ответ #10 : 13.03.2015, 18:37:28 »

До первого обновления, ибо все правки ядра после обновления слетят.
) ну тогда
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]
Записан
makarseo
Новичок
*

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

Сообщений: 7


« Ответ #11 : 13.03.2015, 19:14:58 »

Нет не одного дельного поста.

Прочитайте пожалуйста пост. Мне не нужно редиректы и тому прочее.
Необходимо только отображать слеш в ссылке в меню и не более того!
Записан
makarseo
Новичок
*

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

Сообщений: 7


« Ответ #12 : 13.03.2015, 19:26:13 »

ковыряйте шаблон меню mod_menu
templates/yourtemplate/html/mod_menu/*

Спасибо. Поковырялся, настроил именно в этих файлах.
Записан
makarseo
Новичок
*

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

Сообщений: 7


« Ответ #13 : 15.03.2015, 15:56:53 »

Не все получилось как хотелось.

Вот код из файла отвечающее за меню:
Код:
<?php
/**
 * @package Joomla.Site
 * @subpackage mod_menu
 * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access.
defined('_JEXEC') or die;

$subtitle = '';
if($item->note != '') {
 $subtitle = '<span class="subtitle">'.$item->note.'</span>';
}

// Note. It is important to remove spaces between elements.
$class = $item->anchor_css ? 'class="'.$item->anchor_css.'" ' : '';
$title = $item->anchor_title ? 'title="'.$item->anchor_title.'" ' : '';
if ($item->menu_image) {
$item->params->get('menu_text', 1 )?
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
}
else { $linktype = $item->title;
}

if($item->level == 1) { $class .= ' class="main" '; }

switch ($item->browserNav) :
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>/" <?php echo $title; ?>><?php echo $linktype; ?><?php echo $subtitle; ?></a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>/" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?><?php echo $subtitle; ?></a><?php
break;
case 2:
// window.open
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>/" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?><?php echo $subtitle; ?></a>
<?php
break;
endswitch;
?>

Конкретно нужная строчка:
Код:
<a <?php echo $class; ?>href="<?php echo $item->flink; ?>/" <?php echo $title; ?>><?php echo $linktype; ?><?php echo $subtitle; ?></a><?php
break;
case 1:
// _blank
?>

При добавлении слеша, все стает на свои место. Но перестает правильно выводить ссылку на главную страницу.
Как добавить ей исключение или сделать для всех других пунктов меню?
Записан
SeBun
Практически профи
*******

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

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



« Ответ #14 : 16.03.2015, 11:21:52 »

Возможно, поставить проверку $item->flink. Например, если после последнего слеша в строке есть точка, закрывающий слеш не ставится (это ссылка на конкретный файл). Если в слове нет точки, добавляем к $item->flink закрывающий слеш. Примерно так.
« Последнее редактирование: 16.03.2015, 11:26:04 от sebun » Записан
ELLE
Support Team
*****

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

Пол: Женский
Сообщений: 4723



« Ответ #15 : 16.03.2015, 12:27:12 »

makarseo, главный пункт меню создайте в скрытом меню, в своем меню используйте псевдоним пункта меню или тип ссылка
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | 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