Проблема Codeigniter и RewriteRule - PullRequest
1 голос
/ 27 мая 2011

Я какое-то время ломал голову над этим.Это правило перезаписи, которое у меня есть на данный момент:

Options +FollowSymlinks
DirectoryIndex index.php

RewriteEngine on
RewriteRule ^ext\/(.*)$ index.php/cproposal/key/$1 [NC]

По сути, я пытаюсь заставить

http://localhost/cvc/ext/12445345346

переписать в

http://localhost/cvc/index.php/cproposal/key/12445345346

Codeigniter производит 404 однако.Если я изменю index.php/cproposal/key/$1 часть правила на что-то бессмысленное, например Codeigniter license.txt, найденное в каталоге, то оно будет работать, но все, что действительно связано с самим Codeigniter, выдаст 404.

Любые идеи, где яя иду не так?

1 Ответ

2 голосов
/ 27 мая 2011

mod_rewrite отлично, но Codeigniter уже имеет встроенное решение для всего, что есть в вашем приложении Codeigniter.

Попробуйте добавить это в config/routes.php:

$route['ext/(:num)'] = 'cproposal/key/$1';

Это будет направлять запросы для:

http://localhost/cvc/ext/{any_number}

до

http://localhost/cvc/cproposal/key/{requested_number}

index.php будет необязательным и зависит от конфигурации CI.Другими словами, если вы уже используете его - он будет в URL.В противном случае это не обязательно должно быть.

Все маршруты CI могут использовать регулярные выражения в дополнение к встроенным групповым символам (:num) и (:any), поэтому не стесняйтесь проявлять творческий подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...