2010-01-03 117 views
0

我想反正建立一个短URI服务与CI,这样我可以学到CI更快 ..我被困在路由 我藏在index.php然后加入下列路线$route['([A-z0-9]{4})'] = "/forward/redirect/$1";笨路由

但它只是显示了我的默认控制器

我也试图与.htaccess的

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

它给出了没有任何传递的数据错误 任何帮助表示赞赏。 干杯

回答

1

我终于得到了它的工作> _>

routes文件包含此

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

htaccess的包含此

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] 
2

由于没有物理路径/forward/redirect/,你应该重定向到根并输入路径中的“一网打尽”的index.php文件作为参数:

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

或者你可以离开规则因为是和追加另一个规则(这样你将有两个重写周期,第一个将改写为/forward/redirect/asdf,然后第二个重写为index.php/forward/redirect/asdf

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

是它的工作 – Aviatrix 2010-01-03 08:26:44

+0

更新我的帖子 – naivists 2010-01-03 09:02:06

+0

现在我得到错误500 o.O – Aviatrix 2010-01-03 09:54:11