2009-07-18 21 views
0

この規約を使用するサイトがあります。動的生成URLにhtaccessを使用する方法

hxxp://www.twitter.com/golem

hxxp:私は自分のサイト上でそれを実行しようとしてい

//www.twitter.com/golem/following。 "golem"は動的で、基本的にユーザー名です。

だから、hxxp://www.mysite.com/golemはゴーレムのページに行きます。

hxxp://www.mysite.com/golem/details.phpはゴーレムの詳細ページに移動します。

質問は:それは常に、クエリ文字列内のすべての私のPHPファイルに& USER_NAME =ゴーレムが追加されますので、

  1. がどのように私はhtaccessファイルを作るのですか?ブラウザのアドレスバーには表示されません。だから基本的には、スラッシュを持つURLの最初のパスを取って、私が見ているPHPページの終わりにクエリーとして追加する必要があります。

  2. hxxp://www.mysite.com/golem/details.phpは実際には実際の場所でhxxp://www.mysite.com/details.php?user_name = golemにファイルを実行しますパスに「ゴーレム」はありません)アドレスバーにはまだ偽のURLが表示されています。

  3. それはhxxpのような他のURLのために働くください://www.mysite.com/golem/page.phpとhxxp://www.mysite.com/golem/view.phpとなどなど

チュートリアルなどを見ても答えが見つかりません。助けをよろしく!

+0

mod_rewriteを見てください。 – derobert

答えて

1

まだ完了していない場合は、mod_rewriteを有効にします。 .htaccessには、いくつかのRewriteRuleを追加する必要があります。この1としてみてください、

RewriteRule ^([^/]+)/([^?]*)\??(.*)$ $2?$3&user_name=$1 [L] 

はそれが動作しない場合:

これを試してみてください

RewriteRule ^/([^/]+)/([^?]*)\??(.*)$ $2?$3&user_name=$1 [L] 

をしかし、相手方があります:あなたは、古典的なURLを持っている場合は、それらがでキャッチされますこれらのルール。ユーザー名とスクリプト名を区別できる場合は、解決策があります。ユーザー名にドットを使用できないとします。その後、あなたはこの1とルールを置き換えます:

RewriteRule ^([^/.]+)/([^?]*)\??(.*)$ $2?$3&user_name=$1 [L] 

(最初の括弧内のドットに注意してください - それは、URLにドットが含まれている場合、それはルールに一致しないことを言います)。

現在、パラメータの前にドットを含むすべてのURLは、「通常の」URLとして扱われます。

ユーザー名にドットが含まれている場合は、details.phpがPHPスクリプトまたはユーザー名の名前であるとはどのように言えるのでしょうか?このような場合、必要なものだけに一致するRewriteRulesを書くのは非常に難しくなります。また、それらをテストすることも非常に困難です。多くのエッジケースが考えられるので、非常に難しいです。

+0

ありがとうFWH。それはうまくいくようですが、WEIRDの理由のために、私はもはやURLパラメータの他の部分を読むことができません。 $ _REQUEST ['user_name']を使用してユーザー名を取得できますが、URLがhxxp://www.mydomain.com/details.php?item_id = 23の場合は、奇妙な理由でitem_idをURLから取得できません。 誰でも知っていますか? –

+0

これは、上記のルールがすべてのurlを捕まえ、 "details.php"であっても最初の部分をユーザー名として扱うためです。ユーザー名とスクリプト名を区別できる場合(たとえば、ユーザー名にドットを含めることができない場合など)、ルールをスクリプト名なしのURLのみを取得するものに置き換える必要があります。私はこれを反映するために私の答えを更新しています。 – FWH

+0

ありがとうFWH。しかし、それはまだ動作していないようです。私はURLでitem_idのリクエストをしましたが、それは私に与えられません。しかし、それは私にユーザー名を与えます。 –

関連する問題