2009-07-11 12 views
0

私はGumboからこのhtaccessファイルをスプーンでフィードしました。私は多くのことを学んだので、それに感謝しています。しかし、私はいくつかの変更を行い、前後に戻って、再びいくつかの小さな変更を加えることに成功し、それが80%に動作しますが、それは動作していない場合があります:再書き込みで余分な文字を削除する

私はhttp://www.example.com/view.php?t=45reに入力した場合、それが正常に書き換え、それはURLのhttp://www.example.com/ **?t = ** 45reでこれを行います。どうしているのか分かりません。他にも大変助けになりました。

# REWRITE DEFAULTS 
RewriteEngine On 
RewriteBase/

# /view.php?t=h5k6 externally to /h5k6 
RewriteCond %{THE_REQUEST} ^GET\ /view\.php 
RewriteCond %{QUERY_STRING} ^([^&]*&)*t=([^&]+)&?.*$ 
RewriteRule ^view\.php$/[L,R=301] 

# /h5k6 internally to /view.php?t=h5k6 
RewriteRule ^([0-9a-z]+)$ view.php?t=$1 [L] 

答えて

1

this postだと思います。そして、私はVinkoが既に言及したように、それを無効にするための置換で空のクエリを忘れてしまったことを認めなければなりません。

だから、これを試してみてください。

# /view.php?t=h5k6 externally to /h5k6 
RewriteCond %{THE_REQUEST} ^GET\ /view\.php 
RewriteCond %{QUERY_STRING} ^([^&]*&)*t=([^&]+)&?.*$ 
RewriteRule ^view\.php$ /%2? [L,R=301] 

# /h5k6 internally to /view.php?t=h5k6 
RewriteRule ^([0-9a-z]+)$ view.php?t=$1 [L] 

%2は、対応するRewriteCondディレクティブのパターンの第2のグループの試合に後方参照です。したがって、%2は、この場合、^([^&]*&)*t=([^&]+)&?.*$([^&]+)の一致を保持します。

+0

Heh。私はそれが大丈夫だったが、私は理解していない部分を削除した。私は元の質問へのリンクも提供しません。 :-) –

+0

私の防衛の中で、私はあなたの両方がある時点であったような騒ぎです。 Btw、私は理解していなかったので削除しなかった、私は私が動作するかもしれないと思った他のものを試していたので削除した。 :) – Abs

+0

それは今素晴らしいです。たぶん私はこれを削除する...;) – Abs

1

(つまり、あなたは、クエリ文字列を外部にリダイレクトするときに渡されていないことをしたい)私はあなたの質問から収集することができるものから、あなたのケースでも何ガンボはあなたに言ったを知らない、あなたの可能性のいずれか

RewriteRule ^view\.php$ /? [L,R=301] 

ノート余分な?、または

RewriteRule ^view\.php$/[L] 

外部へのリダイレクトを削除し、内部のいずれかを使用します。

+0

私は両方を試しました。最初のものは、 "/"の後に何も付かずにホームページにリダイレクトされます。 2番目のページもホームページにリダイレクトされますが、ページとクエリ文字列 "/view.php?t=3ew"が表示されます。 Gumbo、私は "/%2"を持っていたと思う - 私はそれが何であったか分からなかったので、私はいくつかの変更を加え、いくつかのことを悪化させた! – Abs

+0

はい、あなたはそれを理解していないから働いている部分を削除しないでください!!!あなたは「%2はどういう意味ですか?」と尋ねることができました。それを削除する前に! :P –

関連する問題