Здравствуйте, товарищи. Немного о структуре и правильной иерархии страниц (для начинающих пользователей Joomla). Для того, чтобы в адресации страниц была соблюдена правильная иерархия, нужно создать правильное меню. Создаём меню, в котором размещаем ссылки на ВСЕ страницы сайта, которые могут появиться в каких-либо меню. Назовём его, например, "Каркас". Такое название я предложил не спроста: как правило, это меню не выводится на публичной части сайта и не служит для навигации пользователей. "Каркас" - это база для пунктов меню сайта, которая устанавливает порядок связи страниц друг с другом (родители <-> дети). Если нам нужно добавить меню в публичную часть сайта (добавить меню для пользователей), нужно создать новое меню и при добавление в него новых пунктов выбирать "Тип пункта меню: Системные ссылки -> Псевдоним пункта меню". Выбираем пункт меню из меню "Каркас" и сохраняем. Параметр "Алиас" лучше оставить пустым - в этом случае его значение будет браться от пункта меню из "Каркаса". Соблюдая это простое правило у Вас никогда не будет проблем с навигацией и в хлебных крошках всегда будет отображаться корректный путь к открытой странице. Желаю трудовых успехов!
Не совсем соглашусь от некоторых ссылок по определению избавиться не возможно: Код (CODE): domen.ru/articles/129-blablabla.html domen.ru/?Itemid= domen.ru/?Itemid=0 можно конечно уменьшить количество, прописывая только прямые ссылки, но это не решение. Есть SEF компоненты платные или можно бесплатно сделать установив плагин JL No Doubles 2.2, но еще понадобиться все равно нужно будет править: robots.txt или htaccess.txt я вот пробовал двумя способами поставив JL No Doubles 2.2 и заменив htaccess.txt на это: Спойлер: htaccess Код (CODE): ##файл .htaccess для Joomla. ##Может быть закомментировано, если вызывает ошибку сервера. Возможность использовать ##символические ссылки на каталоги или файлы, которые не находятся в пределах корня ##вашего сайта. Запрет на листинг каталогов. Options +FollowSymLinks -Indexes ## ## Кодировка по умолчанию AddDefaultCharset utf-8 ## ## Включение модуля mod_rewrite <IfModule mod_rewrite.c> RewriteEngine On ## ##Корневая директория - начало RewriteBase / ##Корневая директория конец ##Редирект с index.php на / - начало RewriteCond %{THE_REQUEST} !^POST RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$ RewriteRule ^index\.php$ http%2://домен.ру/ [R=301,L] ##Редирект с index.php на / - конец ##Редирект с www на без www - начало RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] ##Редирект с www на без www - конец </IfModule> ## Конец модуля mod_rewrite ##Индексная страница DirectoryIndex index.php ## ## Настройки хостинга - начало <ifModule mod_php.c> php_value register_globals 0 php_value safe_mode 0 php_value allow_url_fopen 0 php_value display_errors 0 php_value file_uploads 1 php_value magic_quotes_gpc 1 php_value magic_quotes_runtime 0 php_value upload_max_filesize 20M php_value post_max_size 10M php_value max_execution_time 100 php_flag register_globals Off php_flag display_errors Off php_flag file_uploads On php_flag allow_url_fopen off php_flag magic_quotes_gpc On php_flag magic_quotes_runtime Off </ifModule> ## Настройки хостинга - конец ## Правила обработки запросов для блокировки распространенных эксплоитов - начало RewriteCond %{QUERY_STRING} proc/self/environ [OR] RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR] RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F] ## Правила обработки запросов для блокировки распространенных эксплоитов - конец ##Блокировка прямого доступа к ядру - начало RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC] RewriteCond %{REQUEST_URI} \/components\/ [OR] RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR] RewriteCond %{REQUEST_URI} \/language\/ [OR] RewriteCond %{REQUEST_URI} \/libraries\/ [OR] RewriteCond %{REQUEST_URI} \/modules\/ [OR] RewriteCond %{REQUEST_URI} \/plugins\/ [OR] RewriteCond %{REQUEST_URI} \/templates\/ [OR] RewriteCond %{REQUEST_URI} \/cli\/ RewriteRule ^(.*)$ index.php [R=404,L] ##Блокировка прямого доступа к ядру - конец ##Блокировка MySQL инъекций - начало RewriteCond %{query_string} concat.*\( [NC,OR] RewriteCond %{query_string} union.*select.*\( [NC,OR] RewriteCond %{query_string} union.*all.*select [NC] RewriteRule ^(.*)$ index.php [F,L] ##Блокировка MySQL инъекций - конец ##Блокировка файловых инъекций - начало RewriteCond %{REQUEST_METHOD} GET RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC] RewriteRule .* - [F] ##Блокировка файловых инъекций -конец ## Запретит доступа к htaccess.txt, configuration.php и php.ini RewriteRule ^(htaccess\.txt|configuration\.php-dist|php\.ini)$ - [F] ## ## Раздел SEF ядра Joomla - начало RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_URI} !^/index\.php RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|raw|ini|zip|json|file|vcf))$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] ##Раздел SEF ядра Joomla - конец ##Ускорение загрузки сайта ##Gzip сжатие с помощью модуля mod_deflate - начало <ifModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript </ifModule> ##Gzip сжатие с помощью модуля mod_deflate - конец ##Gzip сжатие с помощью модуля mod_gzip - начало <IfModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include mime ^text\.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_include mime ^application/x-font-woff.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </IfModule> ##Gzip сжатие с помощью модуля mod_gzip - конец ##Кэширование с помощью модуля mod_headers - начало <ifModule mod_headers.c> #кэшировать HTML и htm файлы на один день <FilesMatch "\.(html|htm)$"> Header set Cache-Control "max-age=43200" </FilesMatch> #кэшировать CSS, javascript и текстовые файлы на одну неделю <FilesMatch "\.(js|css|txt)$"> Header set Cache-Control "max-age=604800" </FilesMatch> #кэшировать Flash и изображения на месяц <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> #отключить кэширование <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> </IfModule> ##Кэширование с помощью модуля mod_headers - конец ##Кэширование с помощью модуля mod_expires - начало <ifModule mod_expires.c> ExpiresActive On #по умолчанию кеш в 5 секунд ExpiresDefault "access plus 5 seconds" #кэшировать Flash и изображения на месяц ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" #кэшировать CSS, javascript и текстовые файлы на одну неделю ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 604800 seconds" ExpiresByType application/javascript "access plus 604800 seconds" ExpiresByType application/x-javascript "access plus 604800 seconds" #кэшировать HTML и htm файлы на один день ExpiresByType text/html "access plus 43200 seconds" #кэшировать XML файлы на десять минут ExpiresByType application/xhtml+xml "access plus 600 seconds" </ifModule> ##Кэширование с помощью модуля mod_expires - конец - сразу говорю этот способ не решает все проблемы, только частично
Ссылки подобного вида не должны индексироваться пауками. Если только кто-то не прописал такую ссылку на какой-то странице умышлено...
Могли бы поподробнее на примере о вашем подходе для Joomla 3.x с родным ЧПУ без сторонних SEF-расширений? Объясните плиз подробнее, в чем же преимущество такого способа по сравнению с традиционным?
в опции "пункт меню" выберите тот пункт меню, для которого Вы создаёте псевдоним (синоним). Псевдоним. Это SEF URL пункта меню. Будет использоваться, только при включённом SEF. устанавливает порядок связи страниц и если нужно "Тип пункта меню: Системные ссылки -> Псевдоним пункта меню" Системные ссылки. Внешний URL. Пункт меню будет вести на страницу, url-адрес которой будет задан в настройках типа. Системные ссылки. Псевдоним пункта меню. Ссылка на уже существующий пункт меню. Системные ссылки. Разделитель. Просто разделитель двух пунктов меню между собой. --- добавлено: 18.08.2015, первое сообщение размещено: 18.08.2015 --- пример использования псевдонима, к примеру есть два меню верхнее и боковое в одном делается прямая ссылка в другом псевдоним.
Спасибо. Хорошо, одно преимущество скрытого "прокладочного" меню я увидел. 1. Можно по быстрому создавать пункты второго, третьего и т.д. меню на той же странице, дублирующие пункты основного меню. При этом сохраняется идентичность ссылок за счет того, что эти пункты ссылаются на один и тот же alias (псевдоним). Если бы "прокладочное" меню не использовалось, то возможны были бы недоразуменя - в дублирующих ссылках вручную заданный alias мог бы отличаться от alias в основном меню. И тогда хлебные крошки при заходе из разных меню на одну и ту же страницу выглядели бы по разному. Я правильно понял этот момент? А еще какие преимущества? Что имеется в виду под "устанавливает порядок связи страниц"? Привязку к категориям? Сорри - я только изучаю Joomla.
При чём здесь категории вообще? Чётко указывает схему ссылок в дереве меню. Корневой 1 Вложеный 1 Вложеный 2 Вложеный 1.1 Вложеный 1.2 Вложеный 3 Корневой 2 Корневой 3 Вложеный 3.1 Вложеный 3.2 Вложеный 3.3 ... Если на сайте много разных меню - ссылки могут путаться и в адресной строке и "хлебных крошках" может появляться неожиданный результат.
Спасибо. Теперь понятно. Значит основное назначение "прокладочного" меню - единообразный вид URL в адресной строке браузера и хлебных крошках при заходе на страницу из любых меню? Еще плюсы есть? Есть вопрос , перекликающийся с данным. Где-то читал следующее. Если вы хотите дать ссылку в статье на какую-то другую статью или категорию, ее лучше давать в виде ссылки не на URL статьи (категории), а на пункт меню, который выводит эту страницу. Типа Joomla в итоге оперирует пунктами меню, а ссылки на страницы и категории носят вторичный характер, могут меняться и т.д. Правильно ли я понимаю, что если я хочу вставить ссылку в одной статье на другую в редакторе JCE, лучше вставить ссылку на пункт меню, который выводит статью, а не на саму статью? В JCE доступны оба варианта. Хотелось бы услышать Ваше мнение.
Почему JCE, вам мало tinymce и codemirror, как с ссылками, так и с лишним скриптом не стоит ПЕРЕБАРЩИВАТЬ. Чем меньше плагинов тем меньше ошибок, многим хватало codemirror В шаблонах присутствует разное оформление, которые прописаны в css, надо только при помощи codemirror прописать в текст: материала, статьи модуля. А главное материал будет отображаться без всяких дополнительных: Код (CODE): <p>...</p> <div>...</div>
Это было ДО того, как стали популярны компоненты/модули/плагины из разряда "сел и поехал". Большинство "разработчиков" уже даже html почти не знает, какой тут текстовый редактор?))
Справочник по HTML - есть, можно посмотреть, почитать, я тоже не всегда знаю, хочется, чтоб кто-то подсказал, а не самому додуматься И по CSS3 и php, jquery, javascript, более того все меняется, становиться популярным. Например html5
Ну вы тут как профи общаетесь. А тех, кто делает сайты для себя с помощью JCE и готовых модулей "сел и поехал" - тоже очень много. Ну так ответьте на вопрос - в редакторе лучше ставить ссылку на пункт меню или на сам материал?
причем тут редактор? JCE редактор для создания контента сайта на Joomla! Редактор JCE позволяет создавать современный контент для сайта даже без знания HTML, XHTML, CSS, вставлять медиа и изображения, можно создать всплывающие окна с различным содержимым: видео-ролики, изображения, галереи, ролики из Youtube. Как писал JCE редактор не нужен, видео ролики можно вставлять allvideo, всплывающие картинки mavikthumbnails или других подобных плагинов
Спасибо за подробный ответ, но создание меню мне знакомо. Вопрос не про JCE, а про идеологию: предлагаемый топикстартером способ создания меню имеет целью единообразие ссылок на статьи из любых меню? И вроде это единственная цель? И при этом ссылки делаются каждый раз не на статьи, а на пункты "каркасного" меню? Так вот и спрашиваю: в редакторе тоже делать ссылки на пункты "каркасного" меню (или меню вообще), выводящие статью, а не на сами статьи? Это тоже вроде позволяет сохранить единообразие ссылок. Делать так - это рекомендация из какого-то учебнике по Joomla - не помню, жалко, какого. Вы сами, когда вставляете ссылки, указываете напрямую на статьи или указываете на пункты "каркасного" меню? А про JCE я написал потому, что там при вставке ссылки можно указать как на статью, так и на пункт (каркасного) меню, ведущий к той же статье. И результат будет одинаков. Но с точки зрения унификации ссылок, наверно, на пункт меню лучше?
смотря с какой стороны посмотреть! если делать ссылки на меню, то и в меню и в статьях всегда будет одинаковый ответ и местоположение статьи если делать ссылку на саму статью. то может получиться такая штука: статья уже давно удалена из меню и её нет, а из материала где есть ссылка на туже статью ссылка всё ещё работает (хотя такого быть не должно т.к. в меню её уже нет) каждый выбирает себе свой геморрой!
Кстати, на SEO такое промежуточное меню никак не сказывается? Думаю, лучше на пункт меню. Если статья не нужна, ее однозначно уберут из меню. И будет нехорошо, что к ней останется доступ по забытым ссылкам в статьях.
На пункт меню! Главное, чтобы в ссылке присутствовал Itemid - на нем всё завязано в джумле. Если по виду ссылки идентичны, то без разницы, что вставлять... что удобнее. В общем-то самое важное понимать, что в джумле всё построено на Itemid (ID пункта меню). Соответственно, в зависимости от указанного пункта меню будет зависеть вид страницы (и сайта в целом) и само местоположение статьи (материала).
Да. Если ты делаешь перелинковку страниц и для этого решил вставить ссылки на другие страницы прямо в текст материала, то вставлять ссылки лучше "на пункт меню".