Codeigniter маршрутизации не работает
Здравствуйте, у меня есть этот URL 127.0.0.1/link/index/25, мой контроллер по умолчанию, это ссылка, и когда я использую 127.0.0.1, я вижу индекс контроллера ссылок, но когда я передаю аргумент в URL, как 127.0.0.1 / 25 не работает, я должен использовать полный URL, как я могу его улучшить?
Я пытаюсь добавить статический маршрут в route.php, но он не работает
$route['index/(:num)'] = 'link/index/$1';
4 ответа
Если вы хотите URL, как 127.0.0.1/25
чем ваш маршрут должен быть:
$route['(:num)'] = 'link/index/$1';
Или если вы хотите использовать маршрут как то же самое $route['index/(:num)'] = 'link/index/$1';
чем должна быть ваша ссылка:
127.0.0.1/index/25
Но обратите внимание, что этот маршрут $route['(:num)']
изменит все другие URL-адреса, вам нужно использовать маршрут так же, как вы используете, просто измените URL-адрес как
127.0.0.1/index/25
Примечание: Другое решение - htaccess.
Есть одна ошибка,
Вы должны удалить индекс $route.
$route['(:num)'] = 'link/index/$1';
Для более подробной информации, пожалуйста, прочитайте о неявной и явной маршрутизации в codeigniter. А также прочитайте этот ответ -> . как в настройке-динамический маршрут в использовании-слизняк-в-CodeIgniter
Вы должны использовать правило, чтобы соответствовать URL в желаемой форме. В вашем случае это будет:
$route['(:num)'] = 'link/index/$1';
При этом, возможно, вы захотите использовать какой-то префикс в ваших URL, а не непосредственно числовой идентификатор. Это может помочь вам в будущем, если ваш сайт растет. Что-то вроде http://127.0.0.1/link/25
и маршрут для этого будет
$route['link/(:num)'] = 'link/index/$1';
Вы не можете иметь маршрут, который не говорит, что это за маршрут. Как CI узнает, должен ли он быть контроллером или контроллером по умолчанию с аргументом.
Когда вы переходите на 127.0.0.1, вы получаете контроллер связи по умолчанию. Для связи с контроллером с аргументом вам необходимо использовать 127.0.0.1/link/index/25
Что касается приведение в порядок URL-адресов, есть разные способы решения этой проблемы. Как вы хотите, чтобы ваши URL выглядели? Прежде всего, измените ваш метод с индекса, скажем, на mywebpage, и измените контроллер по умолчанию в файле конфигурации маршрутов.
Или вы можете использовать маршрутизацию для маршрутизации более красивых URL, или вы можете использовать htaccess. Но вы не можете передать аргумент неназванному контроллеру. И ваш контроллер по умолчанию не может быть в подпапке по той же причине.
Надеюсь, это поможет,
Павел