Почему я получаю ошибку 403 при просмотре пункт меню Drupal пользовательского меню через чистый URL?
-
27-09-2019 - |
Вопрос
Я создал пользовательский пункт меню на своем веб-сайте Drupal 6, определив его в пользовательском модуле. Это чрезвычайно простое пункт меню MENU_NOMMAL_ITEM. Пункт меню определяется как
/**
* Implementation of hook_menu().
*/
function menu_test_menu() {
$items['menu_test'] = array(
'title' => 'Menu Test',
'page callback' => 'menu_test_hello',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
Поскольку у меня есть чистые URL-адреса, путь должен быть www.example.com/menu_test. Этот URL дает мне ошибку 403. Но, если я введу www.example.com/?q=Menu_test, все работает нормально. Почему я получаю ошибку 403? Пункт меню бесполезен, потому что он всегда пытается перейти на чистый путь URL, который должен работать, но не по какой-то причине.
Спасибо за помощь!
Чтобы быть понятными ... Чистые URL включены, и реестр меню был восстановлен несколько раз.
Решение
Эта проблема зависит от этого пути, используемого в примере страницы обратного вызова «Menu_test». Изменение этого пути обратного вызова (например, на «Test_Menu») решает проблему. Это было на самом деле проблема с правилом перезаписи в файле .htaccess. Часть правила ищет «тест» как окончание пути. Итак, в моем случае я не смогу использовать любой путь, который заканчивается в «тесте». Вот почему я получал 403 ошибок.
Если вы испытываете тот же тип выпуска, проверьте правило перезаписи для аналогичного состояния. В моем случае я решил просто избежать конца моих путей с «тестом», что не должно быть слишком сложно.
Спасибо за комментарии в любом случае! Я просто рад, что это выяснилось сейчас.
Коррекция: Это не правило перезаписи ... это правило файлов, которое защищает определенные файлы и каталоги.