2012-03-20 10 views
0

facebookアプリケーションのようにcodeigniterに動的URLを作成する必要があります。 codeigniterフレームワークを使用してそのようなURLを作成することは可能ですか? 例:カスタムアプリケーション/設定/ routes.phpの中で、コントローラのルーティングを設定する必要が 1. www.facebook.com/nisha 2. www.facebook.com/devfacebookのようなcodeigniterに動的URLを作成する

+0

Apacheの[mod_rewrite](https://www.google.com/search?q=mod+rewrite+tutorial)を探している可能性があります。 –

+0

[Codeigniter:ユーザー名の作成時にユーザーのユーザーURLを作成したい](http://code.google.com/intl/ja/defaultoverflow/questions/4632857/codeigniter-i-would-like-create-user-urls-for -my-users-when-they-create-a-user) –

答えて

2

。同様に:


$route['([a-zA-Z]+)'] = "controller_name/function/$1"; 

これは、あなたが望む方法のようなURLになりますが、それはあなたのコントローラのすべてにアクセスできなくなり任意の「/コントローラ/パラメータ/」フォーマットは、'で一致するので、それはです(:任意の) 'となり、controller_name/function/'にリダイレクトされます。

CIルータによってリダイレクトされたコントローラを停止するには、まずroutes.phpにすべてのコントローラを明示的に定義し、最後に上記のルーティングルールを最後の行に追加する必要があります。それは私がそれを働かせる方法です。 何らかの形であなたを助けてくれることを願っています。

+0

これは 'domain.com/1234123'にもマッチします – Starx

0

これは経路の使用によってこれを設定するのはかなり簡単です。彼らはguide

$route['([a-zA-Z]+)'] = "controller/user/$1"; 

をルーティング読むウェブサイトにアクセスするための唯一の方法は自分である場合は、それ以外の場合は、これは長期的にハードキャッチすることを証明します、そしてdomain.com/username似てokです。その場合には、

$route['users/([a-zA-Z]+)'] = "controller/user/$1"; 

のように限られた範囲にルートを制限これは、この方法を試してみて、多くの方法でシステムを拡張する

0

に役立ちます。それはコントローラの多くを持っているが、それはすべてのCIルールに違反しているかわからない場合は、繰り返し線の多くを削減します。

//this code block should be placed after any kind of reserved routes config 
$url_parts = explode('/',strtolower($_SERVER['REQUEST_URI'])); 
$reserved_routes = array("controller_1", "controller_2", "controller_3"); 
if (!in_array($url_parts[1], $reserved_routes)) {  
    $route['([a-zA-Z0-9_-]+)'] = "controller_1/profile/$1"; 
} 
関連する問題