2011-08-27 25 views
1

私はmod_rewriteを初めて使っています。 私はシナリオを提示するつもりです。それが可能かどうかを私に知らせてください。URL書き直しmod_rewrite

私は3つの属性テーブル(id、title、parentid)を持つデータベーステーブルを持っているとします。

と、特定のコンテンツにアクセスするために私のURLは次のようになります。

example.com/content.php?id=some_value 

、some_value IDの、タイトルがsome_titleです。 URLを入力した場合には

example.com/content.php?id=some_value&title=some_title&parenttitle=parent_title 

する必要があります:それは私ものようなURLが有してもよい

example.com/some_title/ 

example.com/content.php?id=some_value&title=some_title 

url.OR

の上に名前を変更することができるようにすることが可能ですこのようなもの:

example.com/parent_title/some_title/ 

私は自分自身を明確にしていない場合は、私に知らせてください。これもmod_rewriteでの最初の試みです。だから小さな情報でさえ非常に役に立つでしょう。

答えて

3

ここでは、あなたの.htaccessファイルに入れることができるものだ

# /id - search an ID 
    RewriteRule ^([0-9]+)(/?)$ /content.php?id=$1 [QSA,L]                 

    # /title - search a title 
    RewriteRule ^([a-z0-9\-\ ]+)$ /content.php?title=$1 [NC,QSA,L]               

    # /parent/child - search parent and child 
    RewriteRule ^([a-z\-\ ]+)/([a-z0-9\-\ ]+)$ /content.php?parent=$1&child=$2 [NC,QSA,L]         

    # /id/name - search id and title 
    RewriteRule ^([0-9]+)/([a-z0-9\-\ ]+)$ /content.php?id=$1&child=$2 [NC,QSA,L]           

    # /search/some_title - search for a title 
    RewriteRule ^search/([a-z0-9\-\ ]+)(/?)$ /search.php?q=$1 [NC,QSA,L]  

等...

+0

結局それは可能ですね! – Tech4Wilco

-1

NO! URLの書き換えは何も生成しません。あなたがそれらを使用しようとしている場合は、URLにid、titleまたはparentidを置くべきです!

+0

感謝..私は思っています。任意のPHPの代替が利用可能ですか? – akashr

+0

@akashr確かに[これ](http://stackoverflow.com/questions/7196698/rewriting-urls-in-php-instead-of-server-config/7199782#7199782) – tttony

+0

@akashrなぜあなたはidを入れないURLの親IDは?私はあなたがタイトルであなたのデータを得ることができると思います(それがユニークならば) – undone