でPHPスクリプトにはかなりのURLを変換:htaccessファイル - サイレント私はPHPを使用していますが、私はこのようなURLを使用したいのget VAR
http://www.example.com/username,
代わりに、次のようにクエリ文字列を使用する:
profile.php?u=username
.htaccess
ファイルを設定するにはどうすればよいですか?
でPHPスクリプトにはかなりのURLを変換:htaccessファイル - サイレント私はPHPを使用していますが、私はこのようなURLを使用したいのget VAR
http://www.example.com/username,
代わりに、次のようにクエリ文字列を使用する:
profile.php?u=username
.htaccess
ファイルを設定するにはどうすればよいですか?
このような何か:
RewriteCond %{REQUEST_FILENAME} !profile.php
RewriteRule ^(.*)$ /profile.php?user=$1 [L]
user
http://www.example.com/profile.php
へ
という名前のGET変数だからこのように、これは、ドメイン名の後に何を渡します:
http://www.example.com/User123
になります:
http://www.example.com/profile.php?user=User123
これは静かに行われるため、サーバーにはURLが醜いprofile.php
が表示されますが、ブラウザには「pretty」example.com/User123
バージョンが表示されます。
あなたは何が起こっているのより徹底的な説明を求めたので、ここにある:
RewriteRule
はビットif文のようなものです。基本的には、「要求がこのパターンと一致する場合は、要求をこの別のファイルにリダイレクトします」と言っています。
^(.*)$
ある
:
^
は、任意の数の試合を「文字列の先頭に一致する.*
手段を探し始める」という意味任意の文字(.
)の(*
は)$
「文字列の末尾にマッチする停止を意味します。あなたが一緒にこれらを組み合わせると、それは基本的にのぼる「すべての要求に一致する。」
.*
周りの括弧は、彼らが変数で囲む規則の一部と一致したものを保存するためのmod_rewriteを伝えます。変数が格納される変数は$1
となります(複数の括弧がある場合は$2
、$3
などに格納されます)。
この$1
変数は、RewriteRuleの最後の部分で指定された新しいパスを定義するために使用されます。
RewriteCond
は、別のifステートメントをRewriteRule
の周りに投げるようなものです。 "この条件が真であれば、以下のRewriteRuleを実行するだけです。「あなたのケースでのRewriteCondは、ファイルがURL(%{REQUEST_FILENAME}
)で要求されている場合は、ルールを実行するだけに言う
がではありません 『profile.php』
これの意味するところは、そのための要求です」 profile.phpは通常どおり処理されますが、他のリクエストはprofile.phpを指すようにリダイレクトされます
最後の[L]
は、「この後にRewriteRulesを実行しない」という意味です。 "Last"。
泥でクリア?
RewriteEngine On
RewriteRule http://www.example.com/(.*) profile.php?u=$1
申し訳ありませんが、これは動作していません.... 助けてくれてありがとう... – Neelesh
助けてくれてありがとう、でもこれは私にスクリプトの名前を与えるだけで、 ([user] => profile.php) しかし、私はあなたが上記のhttp://www.example.com/User123と同じURLにしたいと思っています。 – Neelesh
@Neelesh:それは '[user] => profileのみを与えるべきです。 'example.com/profile.php'に移動した場合はphpです。 'example.com/User123'に行くと' [user] => User123'となります。 – AgentConundrum
私は同じものを使用していましたhttp:// localhost:81/test/neeleshのように、 このコードは私にprofile.phpを与えていますArray([user] => profile.php) In profile.php <? print_r($ _ GET); ?> – Neelesh