1

書き換えルールと正規表現の使用方法について説明しているサイトをたくさん読んだことがありますが、それらはすべて、構文のすべての部分を分解することなく、実際に概念を学ぶのに役立つ特定の例のためのものである傾向があります。必要なコードの種類。

どんな助けでも大歓迎です!

このような URL があります http://www.mysite.com/myphp.php?x=1A&y=2B&c=some1&d=some2

これを次のように書き換えたいと思います: http://www.mysite.com/some1/some2

非常に単純に思えますが、前述したように、これを機能させる方法を理解できる方法で概念を説明しているサイトに出くわしたことはありません。

この特定の例では、?x= は常に同じですが、1A は変化します。同じことがphp文字列の他の各部分にも当てはまりますが、書き換えルールは.phpファイルと実際に関心のある変数の間の任意の数の文字を処理する必要があると想定しています.

これを説明してくれる人、または書き換えルールと正規表現の両方について質の高いリソースを提供してくれる人に感謝します。

4

2 に答える 2

3

このようなルールは機能します (テスト済み):

RewriteRule ^([^/]+)/([^/]+) myphp.php?x=1A&y=2B&c=$1&d=$2 [L]

これには 3 つの部分があります。

  1. RewriteRuleこれが書き換えのルールであることを指定します (条件やその他のディレクティブではありません)。コマンドは、パート 2 をパート 3 に書き換えることです。
  2. この部分は正規表現であり、URL がこの正規表現に一致する場合にのみルールが実行されます。この場合、文字列の先頭を探し、次にスラッシュ以外の文字の束、スラッシュ、さらにスラッシュ以外の文字の束を探します。括弧は、括弧内の部分が将来の参照用に保存されることを意味します。
  3. 最後に、この部分は、指定された URL をこの形式に書き換えることを示しています。$1 と $2 は、キャプチャされて保存されたパーツを参照します (後方参照)

mod_rewrite に関する高品質のリソースについては、過去に「mod_rewrite チュートリアル」を検索していくつか見つけました (これは初心者向けの良いリソースだと思いました)。ほとんどの場合はそのようなものなので、わからないことがある場合は、先に進む前にそれを片付けてください。構文を他にどのように説明できるかわかりません。

正規表現は別のものです。繰り返しになりますが、初心者向けのものを含め、多くのリソースがあります。正規表現の基本的なコツをつかめば、Python の re ページを参照として使用できます。

于 2012-05-09T00:29:12.027 に答える
0

(未テスト) のようなものを .htaccess に追加しましたか?

RewriteEngine on
RewriteRule ^/([0-9a-z]+)/([0-9a-z]+)/$ /?c=$1&d=$2 [L]

x と y は重要ではないと仮定します。

于 2012-05-09T00:09:40.877 に答える