Как правильно настроить .htaccess для Kohana, чтобы в URL не было некрасивого «index.php/»?
Вопрос
Спустя 2 часа я не мог понять это правильно.
Установка Kohana доступна непосредственно под моим доменом, т.е."http://something.org/"
Вместо http://something.org/index.php/welcomde/index Я хочу иметь URL-адреса типа http://something.org/welcome/index
Мой .htaccess полностью испорчен.На самом деле это стандартный файл example.htaccess, который поставляется вместе с загрузкой.Это почти бесполезно.На странице Kohana есть инструкция «как удалить index.php».Это действительно тоже бесполезно, так как о том, как его удалить, даже не будет говориться.Совершенно запутанно.
Пожалуйста, может кто-нибудь предоставить свой рабочий .htaccess для стандартной установки коханы?
Решение
Мой htaccess выглядит как в примере.
RewriteEngine On
RewriteBase /
RewriteRule ^(application|modules|system) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Но вам также придется изменить config.php файл в:
$config['index_page'] = '';
Другие советы
Сейчас это наш файл .htaccess, и он, похоже, работает.
RewriteEngine On
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT,L]
Обратите внимание, что наши каталоги приложений, системы и модулей находятся за пределами корня веб-сайта.
Я думаю, что на некоторых хостах, особенно при запуске PHP в режиме CGI, вам нужно изменить
RewriteRule ^(.*)$ index.php/$1 [L]
к
RewriteRule ^(.*)$ index.php?/$1 [L]
в вашем htaccess.Итак, в основном вы можете использовать рекомендуемая Кохана настройка, просто заменив index.php/$1
с index.php?/$1
Попробуйте это правило mod_rewrite:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php index.php%{REQUEST_URI} [L]
Для тех, кто получает «запрещенную ошибку» 403 в OSX с .htaccess по умолчанию, обязательно добавьте первую строку в .htaccess.
Опции +FollowSymLinks
В Kohana 3.2 другое соглашение.Если вы посмотрите Kohana_URL, вы найдете следующую сигнатуру функции:
public static function site($uri = '', $protocol = NULL, $index = TRUE)
где $index по умолчанию имеет значение TRUE.Передав $index FALSE, вы удалите ссылку на index.php.