-2

私は URL を持っています: search/?word=asdf にリダイレクトしたい: search/word/asdf/ と内部で実行: ?cmd=search&word=asdf

これにより、PHP $ _GET ['cmd'] および $ _GET ['word'] を取得できます。

htaccessでそれを行う方法は?

編集:

私の .htaccess は次のとおりです。

RewriteRule search(.*) %{HTTP_REFERER}cmd/search$1
RewriteRule cmd/search/?key-word=(.*) %{HTTP_REFERER}cmd/search/key-word/$1

しかし、これは機能しません。新しい URL は次のとおりです: localhost/bruc/sandbox/electrolux/trunk/cmd/search/?key-word=asdf

ただし、次のようにする必要があります: localhost/bruc/sandbox/electrolux/trunk/cmd/search/key-word/asdf

したがって、この正しい URL を localhost/bruc/sandbox/electrolux/trunk/?cmd=search&key-word=asdf にリダイレクトします。

しかし、うまくいきません!ここで私のアプローチを試してください:http://htaccess.madewithlove.be/

4

3 に答える 3

2

試してみてくださいRewriteRule ^([^/]*)/word/([^/]*)$ /?cmd=$1&word=$2 [L]。私はそれがあなたの目標を達成すると信じています。

于 2012-08-30T15:28:24.797 に答える
2

これを試して :

RewriteEngine on
RewriteRule ^search/word/(.*)$ /?cmd=search&word=$1 [L]
于 2012-08-30T15:28:55.087 に答える
2

これをチェックして。

RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /?cmd=$1&word=$2 [L]

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

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