Pogčedajte punu verziju : Mod rewrite - uklanjanje .php i codeigniter
spezia
13. 02. 2012., 13:46
Pozdrav,
Ako ima slicna tema nek neko baci link, preko google nisam nasao ono sti mi treba...
recimo imam ovakav url
http://test.localhost/admin.php/skola/profesor/djak
Meni treba da se ukloni .php i da bude
http://test.localhost/admin/skola/profesor/djak
Problem je sto posle ne vidi /skola/profesor/djak i ispisuje
The requested URL was not found on this server.
Probao sam razne tutoriale i nisam razumeo gde gresim..,
Probao sam ovako
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^admin$ admin.php/$1 [NC,L]
Meni ovo kaze, ako nadjes u url "admin" zameni sa admin.php... Samo neznam sta cu sa ovim nastavkom /skola/profesor/djak...
Dušan Dželebdžić
13. 02. 2012., 14:11
Ne ulazeći u rewrite pravila, da li ti je u Apache (vhost?) konfiguraciji uključen AllowOverride?
[DOPUNA] Da li si ispratio uputstvo sa http://codeigniter.com/wiki/mod_rewrite?
dinke
13. 02. 2012., 14:13
Ne znam odakle ti ono "admin.php" u linku ali obzirom da je u pitanju CodeIgniter, moj "wildguess" je da si default index stranu (index.php) u CI congifu zamenio sa admin.php. Imas u manualu (http://codeigniter.com/user_guide/general/urls.html) kako se otarasiti toga, npr za index.php bilo bi:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
na ovaj nacin ces linkove poput foo.com/index.php/controler/method zameniti sa foo.com/controler/method. Naravno u ovom primeru samo trebas da zamenis index sa admin.
Takodje mislim da osim ovoga nema potrebe preterano prckati sa mod_rew-om posto CI ima odlicnu ruting klasu, pogledaj http://codeigniter.com/user_guide/general/routing.html za vise informacija.
eraser
13. 02. 2012., 14:39
Sad sam gledao default podesavanja kod sebe i ovo stoji:
/*
By default CodeIgniter uses search-engine friendly segment based URLs:
| example.com/who/what/where/
|
| You can optionally enable standard query string based URLs:
| example.com?who=me&what=something&where=here
|
| Options are: TRUE or FALSE (boolean)
*/
$config['enable_query_strings'] = FALSE;
Pogledaj u config.php ...
Br@nkoR
13. 02. 2012., 15:05
Probao sam ovako
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^admin$ admin.php/$1 [NC,L]
Meni ovo kaze, ako nadjes u url "admin" zameni sa admin.php... Samo neznam sta cu sa ovim nastavkom /skola/profesor/djak...
Ovo bi trebalo da znači ukoliko je URL jednak "admin", zbog znakova ^$ (početak/kraj), pokušaj i npr:
RewriteRule ^admin/(.+) admin.php/$1 [L]
ili
RewriteCond %{REQUEST_URI} ^/admin/(.+)
RewriteRule .+ admin.php/%1 [L]
spezia
13. 02. 2012., 16:18
Ovo bi trebalo da znači ukoliko je URL jednak "admin", zbog znakova ^$ (početak/kraj), pokušaj i npr:
RewriteRule ^admin/(.+) admin.php/$1 [L]
ili
RewriteCond %{REQUEST_URI} ^/admin/(.+)
RewriteRule .+ admin.php/%1 [L]
Ovo mi je trebalo...
Da, nemam index.php, jer ide malo drugacije aplikacija pa mi je zato potrebno da admin ostane u url ali bez .php, da bi bio lepsi url, he
Hvala svima na pomoc
vBulletin® v3.6.8, Copyright ©2000-2024, Jelsoft Enterprises Ltd.