CodeIgniter Framework - Как да скрием index
02-08-2010
Ха де , как да ме скриете....
Забелязах, че има няколко урока отнасящи се до CodeIgniter ( Ци ) и реших да допринеса с нещо и аз относно линковете.
Нека да приемем ,че сайта ни е на адрес :
http://localhost/
За да заредим някой от контролерите линка в адрес бара ще стане :
http://localhost/index.php/Webtourist/
На повечето потребители няма да им направи впечетление, обаче нещата , поне така смятам, трябва да се изпипани.Смятам ,че не е естетически красиво да се вижда името на файла , като при линк от сорта :
http://localhost/index.php/webtourist/add_lesen/post/lastone ( примерен линк )
като може да имаме
http://localhost/webtourist/add_lesen/post/lastone


За целта ще се наложи да създадем един .htaccess файл със съдържание :
<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on

# Send request via index.php (again, not if its a real file or folder)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

<IfModule mod_php5.c>
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_php5.c>
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>


http://web-tourist.net/userfiles/2/2636.png


Доста усилия ми костваше да се справя с това.Навсякъде в интернет има кодове как да се направи това и при повече все грешка 500 ......









/ Трябва да сте регистриран за да напишете коментар /
От: adrian
21:43 02-08-2010
Аз ползвам този:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|js|css|robots\.txt)
RewriteRule ^(.*)$ /index/projects/ci/index.php/$1 [L]

него го има в документацията. Като аз съм си добавил единствено js|css, защото иначе js и css не работят. При този htaccess файл проектът ми е в htdocs/index/projects/ci :)

Тук задължително е да не се забравя наклонената черта в началото на пътя :)

http://codeigniter.com/user_guide/general/urls.html
От: index
1:12 03-08-2010
Явно моят сървър не е наред.ТелеФизора е финофен !
Пробвах то гова , при мен връщаше грешка 500. Още няколко подобни на този пробвах, и пак грешка 500.
Накрая писах в форума им ,и те ми дадоха това. За жалост, няма как да допълна урока с тази информация....
От: StormBreaker
20:23 03-08-2010
Това в урока е по-добър вариант от този в горния коментар. Защото това в урока редиректва към Index.php само ако не съществува такъв файл или директория.
От: adrian
22:09 03-08-2010
Да, това е недостатъкът на кода, който дадох, че трябва ръчно да се добавят папките и файловете, до които искаме да имаме достъп.

Най-накрая успях да подкарам кода от урока и май и аз занапред ще ползвам него ;)
От: gamena007
1:12 04-08-2010
Да не забравяме, че от config.php трябва да изберем да премахва index.php от линковете през redirect() :)
От: misho
19:38 05-08-2010
Къде трябва да се сложи .htaccess файла? Точно в коя папка?
От: index
20:28 05-08-2010
В главната директория.
След което в конфинг файла се слага : $config['index_page'] = ""; вместо
$config['index_page'] = "index.php";
От: misho
15:07 06-08-2010
Благодаря! Ще пробвам по-късно. А къде мога да намеря добри уроци за това как се работи с RewriteRule, за какво е RewriteCond и т.н. Намирам само разни готови решения, и ако моят случай не е такъв, започват мъки и теми из форумите.
От: index
16:39 06-08-2010
http://web-tourist.net/forum/viewforum.php?f=6
задаваш конкретен въпрос, описваш проблема, и някой , стига да знае и може ти отговаря.
От: adrian
16:53 14-08-2010
Друг начин, който открих

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index/projects/ci/index.php/$1 [L]
От: raiden
16:39 19-08-2010
Само да допълня че трябва в httpd.conf да сте задали на директорията AllowOverride All и да сте включили mod_rewrite че иначе даже и грешка 500 няма да даде :D
1