CodeIgniter yönlendirme sorunu

2 Cevap php

I'm trying to build a short uri service with CI just so i can learn CI faster anyway .. i got stuck at the routing i hid the index.php then added the following route $route['([A-z0-9]{4})'] = "/forward/redirect/$1";

ama bu sadece benim varsayılan denetleyici gösterir

ben de Htaccess ile çalıştı

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-z0-9]{4})$ /forward/redirect/$1 [NC]

it gives error for not having any passed data any help is appreciated. Cheers

2 Cevap

i nihayet çalışma var> _>

rotalar dosyası bu içerir

$route['([A-z0-9]{4})'] = "/forward/redirect/$1";

htaccess bu içerir

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*) http://%1/$1 [R=301]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-z0-9]{4})$ index.php/forward/redirect/?$1 [NC]
RewriteCond $1 !^(index\.php|images|robots\.txt|(.*).js|(.*).css|(.*).jpg|(.*).png)
//added (.*) so resources could be loaded properly :)
RewriteRule ^(.*)$ /index.php/$1 [L]

Hiçbir fiziksel yol olduğundan /forward/redirect/, sen kök ve girdi parametre olarak path "yakalamak tüm" index.php dosyasına yönlendirmelidir:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-z0-9]{4})$ /index.php/forward/redirect/$1 [NC]

Ya olduğu gibi kural bırakın ve (iki yeniden döngüleri olacak bu şekilde bir kural ekleyebilirsiniz, ilk /forward/redirect/asdf ve ardından ikinci bir index.php/forward/redirect/asdf için yeniden yazar için yeniden yazmak olacak:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-z0-9]{4})$ /forward/redirect/$1 [NC]
RewriteRule ^(.*)$ index.php/$1 [QSA,L]