Yii: Как избавиться от index.php в адресе?

Yii: Как избавиться от index.php в адресе? Два действия для избавления от index.php в адресе страниц на Yii

1.  В файле .htaccess надо дописать строку: 

 AddDefaultCharset utf-8
	Options +FollowSymLinks 
	IndexIgnore */* 
	RewriteEngine on
	# if a directory or a file exists, use it directly 
	RewriteCond %{REQUEST_FILENAME} !-f 
	RewriteCond %{REQUEST_FILENAME} !-d
	# otherwise forward it to index.php 
	RewriteRule . index.php


2. В config/main.php установить свойство 'showScriptName' компонента urlManager  в false:

'showScriptName'=>false,


Всё.


Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (7)     Подпишитесь на RSS комментариев к этой статье.

7 комментариев

#144
Barkov говорит:
December 7, 2011 at 08:38 pm
Подскажите в каком именно файле .htaccess надо дописать строку? Либо укажите точный путь. Спасибо
#145
dlrm говорит:
December 8, 2011 at 04:26 pm
В файле .htaccess в корневой папке сайта. Это основной .htaccess, если не видно его, то включите отображение скрытых файлов в своём редакторе.
#399
Anton говорит:
March 26, 2012 at 10:16 pm

Что делать если работает на виртуальном хосте?

Not Found

The requested URL /tbikc.catalog/category/index was not found on this server.


Apache/2.2.22 (Ubuntu) Server at all Port 80
#403
almix говорит:
March 28, 2012 at 03:46 pm
Не знаю. Anton, как вы в роутах (config/main.php) формируете пути, что-то там скорее всего...
#998
Даша говорит:
August 28, 2013 at 08:24 am

Скажите, пожалуйста, если сайт уже давно существует, и страницы проиндексированы поисковиками, можно ли вносить эти изменения? или все страницы тогда будут иметь новые адреса?

И вообще, реально влияет ли этот index.php на продвижение сайта?

#999
almix говорит:
September 6, 2013 at 03:04 pm

Даша, без index.php получаются другие URL страниц. Надо 301 редирект, попробуйте так

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$ http://ваш_сайт/ [R=301,L]
#1028
Степан говорит:
November 12, 2013 at 02:15 pm
Знал бы я об зтом раньше, а то гугл проиндексовал весь мой сайт, спасибо за статью.