На 7.14 друпале стоит PathAuto. Чистые ссылки включены. Ссылки на ноды в меню автоматически преобразовываются в названия страниц, типа "my-site.com/content/about" и тут проблем нет. Но вот на самих страницах ссылки на ноды НЕ ПРЕОБРАЗОВЫВАЮТСЯ в их алиасы (my-site.com/node/2), в результате получаем 2 разные ссылкы из меню и с контента страницы на одну и ту же физическую страницу. понятное дело, что и поисковик не связывает их между собой...
подскажите, что сделать, чтобы линки в контенте страниц тоже переводился в "нормальные" алиасы? не переписывать же вручную все ссылки на ноды в их алиасы?
Комментарии
...чтобы линки в контенте страниц...
Что это означает? Вы вручную создаете эти линки? По умолчанию в контенте нету ликов на ноды.
Если вы создаете вручную эти линки, то нужно использовать php и функцию l().
Есть страница Контакты = "/node/2", pathauto выдает мне ссылку типа "/content/kontakty".
я создаю страницу, в которой написано, например, "Обращайтесь к нам!", это "Обращайтесь к нам" - есть гиперссылка на страницу "Контакты", которую я описал как "/node/2".
<p>Если вам нужны сертификаты на продукцию - <a href="/node/2">обращайтесь к нам</a>!</p>
В результате в меню "контакты" = "/kontakty", а моя ссылка на новой странице ведет на "/node/2". Получается, что это уже две разные страницы, полученные из одной. Вот я и спрашиваю, как ПРАВИЛЬНО создавать ссылки на ноды (не на алиасы), чтобы они подменялись алиасами при отображении?
чтобы стало так:
<p>Если вам нужны сертификаты на продукцию - <a href="/content/kontakty">обращайтесь к нам</a>!</p>
ПС почему не хочу пользоваться редиректами: потому что парсеры поисковиков (яндекс) находят две страницы контактов и в статистике мне отображают 2 страницы, не связывая их между собой. На отображение результатов запросов это тоже влияет не лучшим образом...
какой язык страницы и админки?
99% вероятности, что так и есть,
к этому 75%, что линк абсолютный.
и это ппц))
проблема не в pathauto - с ним все ок) делает что должен, автоматически создает синонимы путей согласно шаблонов.
ТС, такой подход возможен, но не самый лучший, вы в этом убедились сами.
принцип простой - где не работает голова, работают руки.
вот Global Redirect, при переходе по не кошерному линку приведет на синоним,
но статичная ссылка в контенте как была так и останется.
варианта два:
1 править руками
2 ваять скриптик который перелопатит регулярочкой соответствующие значения из таблицы field_data_вашеполе, равняясь на url_alias и произведет замену.
Данный модуль:
http://drupal.org/project/pathologic
должен делать вам необходимое
В контенте я всегда делаю линки с учетом пасавто т.е.:
<?php
<p>Если вам нужны сертификаты на продукцию - <a href="/content/kontakty">обращайтесь к нам</a>!</p>
?>
По поводу второй части есть модуль pathredirect, он таки как раз и предотвращает двойной контент, при использовании пасавто.
ПС почему не хочу пользоваться редиректами: потому что парсеры поисковиков...
Как раз таки я хочу пользоваться редиректами чтобы этого не произошло, а именно 301 редирект.
...
Если вас не смущает использование PHP в контенте то можно сделать так:
<?php
<p>Если вам нужны сертификаты на продукцию -
<?php print l('обращайтесь к нам!',drupal_lookup_path('alias','node/2'));?>
</p>
?>
Да и похоже указанный выше модуль позволит вам создавать свои линки без пхп и он будет их менять на алиасы.
grumbler1, ты не смотрел модуль что я показывал?
У него написано что он преобразует.
Только надо писать не href="/node/2", а href="node/2"
natbampo модуль смотрел, вероятно его и буду использовать. Думал что есть более "цивилизованное" решение такой пустяковины.
divined - php меня не смущает, но сайт буду наполнять не только я, а вот "обычных" людей php обычно вводит в ступор Мне pathredirect не подходит, у меня 7.14
спасибо всем, буду пробовать pathologic
pathologic - то что надо, теперь только осталось повырезать слеша. И не сразу допетрал, что в форматах текста его надо дополнительно включить, чтобы переместить в конец... а то на "node/2" выдавало такое безобразие "content/node/2"
радость была сильно преждевременной. если редактирую страницу, то пути правятся нормально. но на других страницах нифига не меняется. я так понимаю, страница в кеше где-то болтается.
подскажите или как кеш очистить или заставить перегенерировать все страницы.
Я думаю что фильтр срабатывает 1 раз, а именно когда вы сохраняете ноду.
Как вариант найти, где тут была, инструкция как пересохранить все ноды.
нашел для 6 друпала здесь.
http://drupalcookbook.ru/recept/peresohranit-vse-dokumenty-sajta
на 7 пойдет? а то сайт-то живой - это не денвер...
вот нужный вам (по описанию) модуль - http://drupal.org/project/intlinks
и - рецепты для 6ки обычно не подходят для 7ки
кеш не пробовал очищать?
не чистил. я понимаю, что это надо делать, чтобы проверить. только как это сделать?
конфигурация -> производительность