Как сделать URL-ссылки ЧПУ

Тема в разделе "Joomla и SEF (ЧПУ)", создана пользователем EgorKus, 20.05.2014.

  1. Offline

    EgorKus Недавно здесь

    Регистрация:
    19.06.2012
    Сообщения:
    7
    Симпатии:
    2
    Пол:
    Мужской
    Всем привет!
    Есть сайт, на котором стоит Joomla 3. Включено ЧПУ.
    УРЛы самой Joomla имеют нормальный вид (собственно Joomla пустая, без материалов - глюков не видно-)) ).
    В Joomla установлен компонет каталога. Ссылки имеют вид:
    http://***.com/index.php/component/sobipro/?sid=2:computers-and-internet&Itemid=0
    Не получается избавиться от того, что выделено жирным шрифтом.
    Уже перепробовал массу вариантов - не помогает.
    Помогите, pls, правильно прописать htaccess.

    Код ниже:
    Код (CODE):
    1. ##
    2. # @package  Joomla
    3. # @copyright  Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.
    4. # @license  GNU General Public License version 2 or later; see LICENSE.txt
    5. ##
    6.  
    7. ##
    8. # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
    9. #
    10. # The line just below this section: 'Options +FollowSymLinks' may cause problems
    11. # with some server configurations.  It is required for use of mod_rewrite, but may already
    12. # be set by your server administrator in a way that dissallows changing it in
    13. # your .htaccess file.  If using it causes your server to error out, comment it out (add # to
    14. # beginning of line), reload your site in your browser and test your sef url's.  If they work,
    15. # it has been set by your server administrator and you do not need it set here.
    16. ##
    17.  
    18. ## Can be commented out if causes errors, see notes above.
    19. # Options +FollowSymLinks
    20. Options +SymLinksIfOwnerMatch
    21.  
    22. ## Mod_rewrite in use.
    23.  
    24. RewriteEngine On
    25.  
    26. ## Begin - Rewrite rules to block out some common exploits.
    27. # If you experience problems on your site block out the operations listed below
    28. # This attempts to block the most common type of exploit `attempts` to Joomla!
    29. #
    30. # Block out any script trying to base64_encode data within the URL.
    31. RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
    32. # Block out any script that includes a <script> tag in URL.
    33. RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
    34. # Block out any script trying to set a PHP GLOBALS variable via URL.
    35. RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    36. # Block out any script trying to modify a _REQUEST variable via URL.
    37. RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    38. # Return 403 Forbidden header and show the content of the root homepage
    39. RewriteRule .* index.php [F]
    40. #
    41. ## End - Rewrite rules to block out some common exploits.
    42.  
    43. ## Begin - Custom redirects
    44. #
    45. # If you need to redirect some pages, or set a canonical non-www to
    46. # www redirect (or vice versa), place that code here. Ensure those
    47. # redirects use the correct RewriteRule syntax and the [R=301,L] flags.
    48. #
    49. ## End - Custom redirects
    50.  
    51. ##
    52. # Uncomment following line if your webserver's URL
    53. # is not directly related to physical file paths.
    54. # Update Your Joomla! Directory (just / for root).
    55. ##
    56.  
    57. RewriteBase /
    58.  
    59. ## Begin - Joomla! core SEF Section.
    60. RewriteCond %{QUERY_STRING} ^(.*)Itemid=$
    61. RewriteRule ^(.*) /$1?%1 [R=301,L]
    62.  
    63. #
    64. RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    65. #
    66. # If the requested path and file is not /index.php and the request
    67. # has not already been internally rewritten to the index.php script
    68. RewriteCond %{REQUEST_URI} !^/index\.php
    69. # and the request is for something within the component folder,
    70. # or for the site root, or for an extensionless URL, or the
    71. # requested URL ends with one of the listed extensions
    72. RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
    73. # and the requested path and file doesn't directly match a physical file
    74. RewriteCond %{REQUEST_FILENAME} !-f
    75. # and the requested path and file doesn't directly match a physical folder
    76. RewriteCond %{REQUEST_FILENAME} !-d
    77. # internally rewrite the request to the index.php script
    78. RewriteRule .* index.php [L]
    79. #
    80. ## End - Joomla! core SEF Section.
     
    Последнее редактирование: 20.05.2014
  2.  
  3. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 310
    Симпатии:
    375
    Пол:
    Мужской
    Так сделай пункт меню для sobipro
     
  4. Offline

    EgorKus Недавно здесь

    Регистрация:
    19.06.2012
    Сообщения:
    7
    Симпатии:
    2
    Пол:
    Мужской
    О! Уже от нескольких человек слышал это, но никто не рассказал как именно это сделать.
    Создал непубликуемое мненю. Выбрал пунктами меню: Функционал СобиПро - Раздел каталога. + то же Создать новую запись.
    В самом меню Joomla - ссылки нормальные. А вот при переходе из меню на раздел каталога - все имеют такой нечитабедьный вид.
    Что не так делаю?
    Могу сбросить ссылку на тестовый хостинг и/или дать доступ в админку.
    3-й день долблюсь...
    Думаю ответ, прост, но суть - в деталях.
     
  5. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 310
    Симпатии:
    375
    Пол:
    Мужской
    В этой теме я первый :)

    Сам пункт меню должен быть опубликован, а вот модуль меню может быть скрыт.

    Именно с SobiPro дела не имел. Но в Joomla для всех компонентов один принцип - для генерации правильных ссылок должен быть сделан пункт меню на компонент. И желательно один пункт, чтобы избежать дублей.
    Если после этого ссылки такие же кривые, то возможно сам компонент такой или его шаблоны.

    .htaccess здесь вообще не при чем, т.к. он занимается обратным преобразованием ссылок.
     
  6. Offline

    EgorKus Недавно здесь

    Регистрация:
    19.06.2012
    Сообщения:
    7
    Симпатии:
    2
    Пол:
    Мужской
    Подскажите, пожалуйста, насколько корректна такая правка URL, как указано в этой статье: http://joofaq.ru/sozdanie-sayta-na-...d-materiala-iz-ssylok-v-joomla-2-5-i-joomla-3 ?
    Вообще, я умаялся убирать лишний кусок URL: component/sobipro/. Неделю долблюсь. Уже сил нет. Сделал пункт меню, но, возможно, что-то не так делаю: с меню URL имеют нормальный вид, а внутри категорий то же самое.
    Может попробуете на моем тестовом хостинге поправить? Предоставлю доступ в админку.
    У Вас минут 5 займет, не более.
    Там стоит только "голая" Joomla 3.2 или 3.3 и компонент с SobiPro с тестовым каталогом.
     
  7. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 812
    Симпатии:
    771
    Пол:
    Мужской
    Оффтопик (не в тему) - жми сюда!
     
  8. Offline

    EgorKus Недавно здесь

    Регистрация:
    19.06.2012
    Сообщения:
    7
    Симпатии:
    2
    Пол:
    Мужской
    draff.
    1.открыть новое окно в браузере, скопировать, вставить в окно браузера адрес админки сайта, перейти на сайт и авторизоваться - 40-50 секунд. Пусть минута.
    2.выбрать меню, создать пункт меню и привязать к нему каталог - 30-40 секунд.
    3.ткнуть "Просмотр сайта" и навести мышкой на несколько ссылок - просмотреть внешний вид получившихся ссылок.

    Все проделал. На все, про все у меня ушло 2 минуты 30 секунд.
    С 2-м запасом - 5 минут. Если по-делу...

    Конечно, если пытаться "ходить" в админке по разным разделам сайта, пытаться читать материалы (дефолтные, которые стоят в каждой
    Joomla) :), можно часами и днями там сидеть.;) Если заняться нечем....
    Я, безусловно, утрирую...:)

    А если по-деловому - зашел, сделал - посмотрел на результат и выдал свое резюме - и карму себе улучшить можно и помочь тому, у кого не получается.;)
    --- добавлено: 24.06.2014, первое сообщение размещено: 24.06.2014 ---
    Я подозреваю, что проблема кроется в этом: "Чтобы избавится от этого префикса, необходимо добавить в какое-либо меню на сайте ссылку на наш компонент и в alias прописать требуемое сокращение. К примеру moy, тогда это префикс отпадет.".
    А точнее: "в какое-либо меню на сайте ссылку на наш компонет..."
    Здесь есть 2 вопроса. Начну с 1-го.
    1.Ссылка на наш компонент. Если выбрать тип пункта меню - SobiPro - Функционал SobiPro (Создать пункт меню компонента SobiPro), то там будет несколько вариантов выбора функционала:
    - Добавить форму ввода записи;
    - Ссылка на категорию;
    - Запись по дате;
    - Ссылка на запись;
    - Функция поиска;
    - Создать ссылку на раздел;
    - Записи пользователя.
    Не понятно к какой записи подключать пункт меню, чтобы убрать из URL component/sobipro/. По-логике, вроде, к разделу.
    Опять же, при создании пункта меню предлагается переопределить шаблон. Если шаблон выбрать - вся эта конструкция не работает. Т.е. шаблон выбирать не нужно. В итоге, получается ссылка на категорию. Тогда, действительно, в этой категории ссылки вместо вида: component/sobipro/?sid=6:news&Itemid=0 становится вида: news.html, а ссылки внутри категории, становятся вида: news.html?sid=26:chats-and-forums. Уже хорошо.
    Но, для этого, в рабочем каталоге нужно удалить все пункты меню и создать новые, изначально, "привязавшись" к категории компонента. Именно категории, а не компоненту вообще, ибо компонента вообще как такового нет. В частности, этот же номер со ссылкой на Раздел (который и включает в себя несколько категорий) у меня не прошел. При налиции ссылки на раздел, ссылки на категории имеют корявый вид (содержат в URL component/sobipro).
    Еще интересный момент: из 4 созданных пунктов меню (пункт меню категории) - 3 ссылки имеют нормальный URL, 1 - содержит в URL component/sobipro/. Удаление пунка меню с очисткой корзины и кэша, и создание по-новой такого пункта меню к улучшению не привели. В чем причина - не понятно.
    Опять же, в самих категориях SobiPro подключены поиск, альфа-поиск, ссылку на раздел категорий. Все они, по прежнему, содержат в URL component/sobipro/. Как это убрать - не понятно. Попробую создать пункт меню на поиск в категории. А как быть с альфа-поиском и ссылкой на раздел - не понятно. Ссылки на альфа-поиск при выборе "Создать пункт меню SobiPro" нет.
    --- добавлено: 24.06.2014 ---
    В принципе, разобрался. Думаю, проблема в том, что нужно было начинать наполнение сайта тестовыми материалами с создания этого пункта меню (со ссылкой на раздел SoniPro). Пришлось удалить все пункты меню. Создать пункты меню на компонент, а затем - уже пункты Главного меню. Исправились все ссылки (включая альфапоиск).
    Надеюсь, это кому-то поможет.
    Другой вопрос мне не понятно, почему все ссылки стали такого вида:
    2014-06-24-13-36-05/base.html?pid=134&sid=139:p-004
    Что делать с этой частью URL: /2014-06-24-13-36-05/ ?
    --- добавлено: 24.06.2014 ---
    Пы.Сы. Вопрос решен.
    Дата появляется в URL если верхний пункт меню "внешний URL". Изменил его на разделитель, руками прописал его алиас и сохранил. Сразу нормализовались URL всех пунктов подменю данного меню. Повторил это для каждого корневого пункта меню. Усё...:)
     
    Последнее редактирование модератором: 24.06.2014
    VL001 нравится это.
  9. Offline

    VL001 Недавно здесь

    Регистрация:
    05.08.2014
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    @EgorKus
    Не совсем понятно как Вы решили проблему.
    Ставлю на пункт меню "- Создать ссылку на раздел" и ссылки каталога .../component/sobipro/?sid=2:computers-and-internet&Itemid=0
    Но "добавить запись", поиск в нормальном виде ...../glavnaya/entry/add
    --- добавлено: 05.08.2014, первое сообщение размещено: 05.08.2014 ---
    @EgorKus
    Еще я так понял платный компонент router решает эту проблему со ссылками
     
  10. Offline

    Хомяк Недавно здесь

    Регистрация:
    26.04.2016
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Женский
    ребята, помогите чайнику разобраться и поправить ошибку...
    Есть сайт, создан на joomla 3. Есть модуль каталога...все страницы, типа новостей, контактов и т.д. имеют нормальные чпу, и только у страниц каталога, что самое основное - чпу косячные. Перед разработчиками стояла задача их правильного написания, но увы - обманули дурака, а точнее дуру|H|
    Вся надежда на ваши гениальные умы и помощь! Я все еще верю в хороших людей...
    Сразу уточню, что в админке синонимы прописаны правильно; в общих настройках включены Включить SEF, Перенаправление URL и Добавлять суффикс к URL.
    В корневом меню есть 2 файла - и такой htaccess.txt, и такой .htaccess
    Каталожные ссылки на сайте при всем этом выглядят так http://site.com/katalog?id=1
    а надо чтобы выглядело так - http://site.com/katalog/chainik
    Расскажите мне, пожалуйста, только доступно, ибо я чайник-чайник - где что надо поправить?!
     
  11. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 812
    Симпатии:
    771
    Пол:
    Мужской
    Если не нужен вывод пункта меню в меню сайта, то можно применить и скрытое меню
     
  12. Offline

    Gooo Недавно здесь

    Регистрация:
    03.03.2015
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Может так попробовать? Надо делать два меню. Одно скрытое. В нем прописываете все разделы и статьи своего сайта. Скрытость обеспечивается тем, что это меню не привязывается ни к одному модулю (позиции). А второе меню- то, что видно всем. И вот пункты этого меню должны ссылаться на соответствующие пункты скрытого меню. Поиграете с alias-ами и вроде должно получиться у Вас.
    И плюс еще для ссылок в статьях - редактор JCE позволяет очень удобно вставлять ссылки на пункты меню, в том числе и скрытого меню.
     

Поделиться этой страницей

Загрузка...