Строгая маршрутизация в Drupal 6,7

Что уж там говорить, Drupal грешит нестрогой машрутизацией. К примеру, вы создаёте маршрут /mypage, то Drupal направит к обработчику все запросы вида /mypage/subpage и /mypage/subpage/subpage2 и т.д.

Вы можете обратиться, к примеру, к публикации /node/100 также и по адресам /node/100/abaracadabra и т.п. По любому из бесчисленного числа адресов!

В этом нет ошибки Drupal, он так устроен (ситуация изменилась в 8й версии). Все последующие части URL интерпретируются как дополнительные параметры.

Это не страшно в плане SEO, т.к. можно в заголовках прописать —

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

Правильно в таких случаях показывать страницу с кодом 404.

Вся необходимая информация для анализа — избыточен ли URL или нет — может быть взята из таблицы menu_router. Проверку можно повесить на hook_init.

Пример писался для 7й версии. Мне кажется не очень сложно модифицировать и для 6ки. Смысл в том, чтобы строго проверить список известных маршрутов.

Это не всегда подходит для кастомных модулей, но частные случаи можно отсечь, добавив условия к

Что касается модулей из ядра, где все маршруты корректно внесены в реестр через hook_menu, тут никаких осечек не происходит.

Мало букафф? Читайте есчо !

Устанавливаем флажок FILE_STATUS_PERMANENT для файла в DRUPAL 9

Август 7, 2021 г.

Если файл загружен через поле, созданное в конструкторе полей какого либо entity Drupal, то соответствующий модуль, предоставляющий функционал загрузки файла, сам обеспечит установку необходимого статуса. Что если поле было создано программно, и требуется ...

Читать

Функционал Sites.php в Drupal 6

Июль 6, 2016 г.

Для организации мультисайтинга в Drupal 7 можно использовать специальный файл sites.php, содержащий массив перенаправлений. Этот массив задаёт соответствия между запрашиваемыми доменными именами (и др. параметрами http запроса) и конечными папками, содержащими ...

Читать

Грузим картинку в поле image в Drupal

Март 1, 2016 г.

Из кода программы на PHP мы попытаемся загрузить картинку в публикацию сайта на Drupal 7. Здесь описана логика и показан код всех операций. Постановка задачи Эта задача является частью задачи импорта статьи, извлеченной из HTML кода веб-страницы ...

Читать

Ajax в Drupal 7

Август 31, 2015 г.

Расскажу про использование техники ajax в рамках движка Drupal. Начнем с теоретических моментов. Во-первых, чтобы получить какие то данные с веб-сайта под Drupal, нужно чтобы соответствующий адрес существовал на сайте. Во-вторых, нам не хотелось бы ...

Читать
 

Комментарии к «Строгая маршрутизация в Drupal 6,7»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: