URL Rewrite, чтобы удалить имя моего контроллера из отображаемого URL - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть этот сайт

http://cjbuilders.info/welcome/home

и все ссылки начинаются с

http://cjbuilders.info/welcome

Как я могу использовать mod_rewrite, чтобы просто удалить

/ welcome /

из URL?Это должно быть легко, но я борюсь с mod_rewrite.

Ответы [ 2 ]

1 голос
/ 11 февраля 2011

Знаете ли вы о маршрутизации URI CodeIgniter ?Добавьте это в ваш конфигурационный файл rout.php, и все должно работать нормально:

$route['home'] = 'welcome/home';
1 голос
/ 01 февраля 2011

Это должно работать, IIRC:

RewriteRule ^/welcome/(.*)$ /$1 [R]

Однако, немного догадываясь о том, что здесь происходит, если причиной этого префикса является что-то вроде сервера приложений Java, развертывающего приложение в контексте «welcome», то лучшим решением будет не переписать URL-адреса, а исправить сервер бэкэнда приложений, чтобы он имел нулевой контекст, т.е. служил в / а не в /welcome/.

Это потому, что сервер приложений, вероятно, захочет генерировать ссылки на другие представления своего приложения и заново вставит «приветствие»: это становится проблемой, и означает, что все ссылки на ваших страницах будут получать перенаправления HTTP при посещении ( например, поисковыми системами). Невозможно, чтобы прокси-сервер apache мог проанализировать HTML-код и сообщить, когда следует удалить это «приветствие», поэтому лучше всего сначала исправить сервер, который пишет ссылки.

...