2012-03-23 23 views
0

だから私は、変換するためにmod_rewriteを使用したい:それは任意の名前にすることができるように($ユーザは、URLに付加さPHPの変数であるPHP .htaccessのmod_rewriteを

random_name.com/main.php?user=$user 

random_name.com/$user 

RewriteEngine on 
RewriteRule ^/([A-Za-z0-9-]+)/?$ main.php?id=$1 [NC,L] 
:そのようアンディやレベッカ、そのような名前)

と.htaccessのための私のコードがあるとして、 210

しかし、これは何らかの理由でうまくいかないようです。私はチュートリアルを読んだことがありますが、それらは実際に複雑で、これはトリックを行うように思えますが、そうではありません。 mod_rewriteの経験がある人であれば、私にはいくつかの指針を与えることができれば感謝します。

+2

は先頭の '/'なしでそれを試してみてください。基本的にはURLに含意されているため、一致するURIには含まれません。 –

+0

@MarcBあなたは答えとして投稿する必要があります。これは、[docs](http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule)の最後の例とディレクトリ単位の設定( '.htaccess')がどのように異なっているかに役立ちますその上にあるサーバーごとのものに変更します。 – Phil

+0

ねえ、私はこれを試しました、それはo.oを動作させるように見えませんでした。 – r1nzler

答えて

1

のうち、/main.php?user=$userを行いますされ、逆変換のためのmod書き換えを使用することができ、これを試してみてください:

RewriteEngine on 
RewriteRule ^([A-Za-z0-9-]+)$ main.php?user=$1 [NC,L] 
+0

ちょっとAndres、私もこれを試した、それは動作していないようだ。 :/ – r1nzler

+0

'RewriteRule(。*)main.php?user = $ 1 [NC、L]'はどうですか?それは同じではありませんが、動作すれば、正規表現を改善したり、PHPコード内の '$ _GET ['user']'変数を操作することができます。 –

+0

ちょっと簡単な質問です。私は$ _GET ['user']の代わりに$ _POST ['user']を使い、$ user = $ _ POST ['user']のようなPHPコードを追加しました。とヘッダー( "Location:main.php?user = $ user");を入力します。私は$ _POSTの代わりに$ _GETを使うと思いますか? – r1nzler

3

mod rewriteを使用してrandom_name.com/main.php?user=$userをrandom_name.com/$userに変換することはできません。
サイトのすべてのリンクで手動で行う必要があります。その後

あなたは/user要求